2012-07-08 163 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

相關問題