任何想法如何使用java獲取本地網絡中終端的操作系統版本。 我聽說UPNP可以做到這一點,但我不知道如何使用它,如果在java中有一個很好的實現。獲取網絡終端的操作系統版本(JAVA)
PS:我不能使用SNMP,因爲我不確定在目標終端中激活了它。
任何想法如何使用java獲取本地網絡中終端的操作系統版本。 我聽說UPNP可以做到這一點,但我不知道如何使用它,如果在java中有一個很好的實現。獲取網絡終端的操作系統版本(JAVA)
PS:我不能使用SNMP,因爲我不確定在目標終端中激活了它。
您可以使用nmap和-O選項,它不需要在終端上運行任何客戶端,準確度幾乎是完美的。
http://nmap4j.sourceforge.net - 是一個包裝Nmap的Java API。
不完全,但感謝您的答案。我正在尋找將NMap的指紋操作系統檢測重新發明爲純Java或任何其他使我能夠近似檢測操作系統版本的解決方案。 – 2012-04-20 19:21:59
不客氣。我認爲爲操作系統指紋識別找到一個純粹的Java實現將會非常具有挑戰性。據我瞭解,要做到這一點,你必須發送某些類型的原始數據包。爲此,您需要操作系統特定的API和對計算機的根訪問權限。 Nmap對操作系統指紋識別的支持非常好,並且有很多支持者。另外Nmap保持得很好,他們每年都會發布一些版本,並進行大量修復。我總是發現他們的用戶和開發人員社區非常有幫助。 – Jon 2012-04-23 14:10:51
所以我不得不使用醜陋的方式** exec()**函數。這需要在我的終端中安裝nmap,並且在反病毒問題及其不合法時不安全使用。 – 2012-03-29 11:28:43
實際上,如果您在自己的網絡中使用Nmap,那麼Nmap並不會違法。無論如何,只需要在運行腳本的機器上安裝Nmap。也許你可以找到一些避免使用exec的Java API。 – raz3r 2012-03-29 12:03:48
好吧,如果存在,我會搜索API。 – 2012-03-29 12:32:38