【问题标题】:Getting the OS version of a network terminal (JAVA)获取网络终端的操作系统版本(JAVA)
【发布时间】:2012-03-28 14:10:14
【问题描述】:

知道如何使用 java 在我的本地网络中获取终端的操作系统版本。 我听说 UPNP 可以做到这一点,但我不知道如何使用它以及 java 中是否有好的实现。

PS:我不能使用 SNMP,因为我不确定它是否在目标终端中被激活。

【问题讨论】:

    标签: java network-programming operating-system snmp upnp


    【解决方案1】:

    http://nmap4j.sourceforge.net - 是一个封装了 Nmap 的 Java API。

    【讨论】:

    • 不完全是,但感谢您的回答。我正在寻找将 NMap 的指纹操作系统检测重新发明为纯 Java,或任何其他使我能够大致检测操作系统版本的解决方案。
    • 不客气。我认为找到一个用于操作系统指纹识别的纯 Java 实现将是一项挑战。据我了解,要做到这一点,您必须发送某些类型的原始数据包。为此,您需要特定于操作系统的 API 和对机器的 root 访问权限。 Nmap 对操作系统指纹的支持非常好,支持者也很多。加上 Nmap 维护得很好,他们每年都会发布一些版本并进行大量错误修复。我一直发现他们的用户和开发者社区非常有帮助。
    【解决方案2】:

    你可以使用nmap和-O选项,它不需要在终端上运行任何客户端,准确度几乎完美。

    【讨论】:

    • 所以我不得不使用丑陋的方式 exec() 函数。这需要在我的终端中安装一个 nmap,当它遇到防病毒问题并且不合法时使用它是不安全的。
    • 实际上,如果您在自己的网络中使用 Nmap,它并没有什么违法之处。无论如何,您只需要在运行您的脚本的机器上安装 Nmap。也许你可以找到一些避免使用 exec 的 Java API。
    • 好的,如果存在,我会搜索 API。
    猜你喜欢
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 2015-12-09
    • 2011-03-27
    • 2013-01-25
    • 1970-01-01
    相关资源
    最近更新 更多