我需要找到远程机器中安装的操作系统类型。我知道,我可以使用像 NMap 这样的操作系统指纹工具来检测远程机器的操作系统特定细节。但我不能使用这样的工具,因为存在一些许可问题。我需要实现自己的逻辑来检测操作系统。在我的搜索中,我找到了一个链接,我们可以找到基于 TTL 的操作系统类型。但是使用 TTL 并不总是准确的。它基于跳数计算。
一台机器上会有一些开放的端口。通过扫描,我们可以设法找到操作系统。
有没有这样的端口可以提供一些关于操作系统类型的想法?我需要实现一个逻辑来运行基于操作系统的脚本。如果有一些条件对检测操作系统类型很有用,那么它可能会节省一些时间。
if(IsOpen(Some_Port_Number))
{
//This machine might be a windows based one so
if(Run_WindowsBasedScript()==False)
{
Run_LinuxBasedScript();
}
}
else
{
if(Run_LinuxBasedScript()==False)
{
Run_WindowsBasedScript();
}
}
所以我需要通过识别操作系统类型来减少运行时间。我认为基于开放的端口我们可以找到操作系统。任何帮助,将不胜感激。