2012-03-28 70 views
1

任何想法如何使用java獲取本地網絡中終端的操作系統版本。 我聽說UPNP可以做到這一點,但我不知道如何使用它,如果在java中有一個很好的實現。獲取網絡終端的操作系統版本(JAVA)

PS:我不能使用SNMP,因爲我不確定在目標終端中激活了它。

回答

0

您可以使用nmap-O選項,它不需要在終端上運行任何客戶端,準確度幾乎是完美的。

+0

所以我不得不使用醜陋的方式** exec()**函數。這需要在我的終端中安裝nmap,並且在反病毒問題及其不合法時不安全使用。 – 2012-03-29 11:28:43

+0

實際上,如果您在自己的網絡中使用Nmap,那麼Nmap並不會違法。無論如何,只需要在運行腳本的機器上安裝Nmap。也許你可以找到一些避免使用exec的Java API。 – raz3r 2012-03-29 12:03:48

+0

好吧,如果存在,我會搜索API。 – 2012-03-29 12:32:38

1

http://nmap4j.sourceforge.net - 是一個包裝Nmap的Java API。

+0

不完全,但感謝您的答案。我正在尋找將NMap的指紋操作系統檢測重新發明爲純Java或任何其他使我能夠近似檢測操作系統版本的解決方案。 – 2012-04-20 19:21:59

+0

不客氣。我認爲爲操作系統指紋識別找到一個純粹的Java實現將會非常具有挑戰性。據我瞭解,要做到這一點,你必須發送某些類型的原始數據包。爲此,您需要操作系統特定的API和對計算機的根訪問權限。 Nmap對操作系統指紋識別的支持非常好,並且有很多支持者。另外Nmap保持得很好,他們每年都會發布一些版本,並進行大量修復。我總是發現他們的用戶和開發人員社區非常有幫助。 – Jon 2012-04-23 14:10:51

相關問題