【发布时间】:2013-10-13 20:06:12
【问题描述】:
我需要找到安装在远程机器上的操作系统类型。 我知道,我可以使用像 NMap 这样的操作系统指纹工具来检测远程机器的操作系统特定细节。 但我不能使用这样的工具,因为存在一些许可问题。 我需要实现自己的逻辑来检测操作系统。 在我的搜索中,我找到了一个link,我们可以找到基于 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();
}
}
所以我需要通过识别操作系统类型来减少运行时间。我认为基于开放端口我们可以找到操作系统。任何帮助将不胜感激。
【问题讨论】:
-
请不要在不同的堆栈交换网站上cross-post。请删除其中一个问题。
-
是的,我做到了!
标签: linux windows operating-system port