2010-01-20 61 views
1

是否存在用於網絡發現的特定協議?
我正在尋找代碼到現有的Java項目。目前我使用的是端口掃描器來處理這種情況,但是我正在尋找可以爲我提供更多信息的東西。如果可能的話,我想掃描發現機器,並拉Ip地址,主機名,MAC地址,網卡製造/型號,操作系統,以及任何我可以得到的東西。以編程方式發現網絡發現

+2

網絡發現?主機連接了哪些機器?其他機器運行某個服務器程序?你可以說得更詳細點嗎? – 2010-01-20 14:07:55

+0

有拓撲圖嗎?這將證明是一個非常有趣的任務... – jldupont 2010-01-20 14:10:24

回答

4

沒有一個協議可以爲你做這一切。我必須做到這一點,基本上,最好的方法是使用啓發式的組合來定位,分析和交叉參考網絡節點和拓撲。下面是我使用的數據源:

  • 路由跟蹤允許您識別網絡中的邊緣設備和路由器
  • 端口掃描器使您能夠識別哪些服務的每個節點上運行
  • SNMP允許您檢測設備的類型,以及其所有網絡接口,其他IP地址,連接到交換機上每個端口的設備的IP,路由表,進程表,網絡配置等。這是最好的數據來源,但需要n可以運行一個snmp服務器(在Windows和大多數Linux發行版中默認安裝)並擁有憑證。
  • WMI對於Windows主機,將提供大致相同的信息作爲SNMP

Here的一個accademic資源我挖了我的拓撲映射器工作時。希望這會有所幫助。祝你好運!

0

查看SNMP協議。它可以自動發現網絡上的設備。請記住,這有一些安全問題(尤其是協議的舊版本)。

+0

這絕對是一個難題。 – jldupont 2010-01-20 14:11:36

1

檢查nmap它可以。它是網絡掃描儀,可以使用ARP,TCP-SYN和許多其他嗅探技術進行掃描。它還包含不同機器指紋的大型數據庫,因此可以猜測系統運行的操作系統/版本。

+0

是的,我很熟悉nmap。我希望獲得更多信息的功能之一是確定掃描中的MAC地址。任何想法從哪裏開始? – Nick 2010-01-20 15:56:19

+0

@Nick我認爲確定MAC最簡單的方法是進行ARP(地址解析協議)掃描(檢查'arping'實用程序),或者只是嘗試「ping」地址並檢查系統的ARP表。請記住,您只能獲得本地網絡中主機的MAC地址(或只有一個網段)。 – MBO 2010-01-23 15:03:44

0

WBEM(類似於Windows上的WMI)可用於掃描Unix計算機和其他設備。當然,只有在安裝了WBEM儀器的情況下...

如果在此處啓用了ESX(i)服務器,WBEM甚至可以運行。

否則,您也可能使用SSH以編程方式登錄到Unix計算機併發出系統命令來提取所需的信息。

有一個很好的Java庫,用於WBEM稱爲SBLIM 有許多Java庫,用於Telnet和SSH在那裏的什麼