2012-07-08 54 views
0

我有一个Java代码,可以创建一个套接字并启动与远程主机的SSL握手。我需要知道远程主机正在运行什么类型的操作系统。这可能与Java?怎么样?如果没有,任何其他解决方案使我的Java程序获得这一信息?是否可以使用Java获取远程主机的操作系统类型?

我已经查询过类似的问题:How to check programmatically the OS of remote host?不幸的是,没有人接受答案。所以,我发布了这个问题,可能现在有人可以提供答案。

+1

事情并非如此简单,请查看nmap必须经过的测试以确定/猜测远程操作系统。 – fvu 2012-07-08 15:10:10

+1

SSL握手不包含有关操作系统的任何信息。 – nos 2012-07-08 15:33:50

+0

@nos:有没有其他方法可以获取操作系统信息?不一定通过SSL握手。 – 2012-07-08 15:49:49

回答

2

这就是所谓的Host Fingerprinting,是一个非常广泛而深入的研究课题。你最好的选择是在子进程中调用一个工具,如nmap,并读取它的输出。请记住,即使最好的指纹算法也会被NAT防火墙和代理轻易误导。

+1

如果你想使用Nmap,你应该在sourceforge.net上检查Nmap4j,它是一个简单的包装API,它调用nmap并将结果转换为Java对象。它也与最新的Nmap兼容。 – Jon 2012-07-10 20:43:03

相关问题