2010-11-10 153 views
1

我有一個小型企業網絡,有幾個交換機,終端設備但只有一個路由器。我想顯示網絡拓撲結構,如圖所示(路由器位於頂部)。網絡拓撲信息

我只能訪問網絡層地址,所以我設法爲網絡上的每個設備獲取它的IP地址和IP網絡,即每個接口的192.168.2.9和192.168.2.0(掩碼255.255.255.0)設備有。

我的猜測是我可以分析數據並建立網絡的邏輯連接。所以,我想問的是,如果我在正確的道路上了解網絡拓撲結構(至少對於它是邏輯連接)。

這一切都以編程方式完成(c和objective-c),並且是針對學校項目的。

PLUS:有人知道任何圖書館,會繪製(給出此信息)的拓撲?

+2

不知道網絡拓撲和東西,但[Graphviz](http://www.graphviz.org/)可以提供您需要的繪圖功能(另見[Wikipedia article]](http:// en .wikipedia.org /維基/ Graphviz的))。 – pmg 2010-11-10 23:19:35

+0

我不知道它是如何實現的,但我知道很多監視工具(包括OpenNMS)都這樣做(儘管在OpenNMS中是Java)。同樣,我知道惠普的SAV工具(與惠普的服務器自動化工具一起提供)可以與網絡自動化協同工作。我認爲你已經對你的環境有了'nmap'了? – warren 2010-11-10 23:25:27

+0

也,這看起來像一個建立在您以前的問題:http://stackoverflow.com/questions/3509876/network-topology – warren 2010-11-10 23:26:22

回答

1

因此,你已經擁有了每個設備的IP地址,這是一個有用的開始。從那裏,一個「手動算法」可能是:

for each ip in devices 
    traceroute ip 
    for each hop in traceroute 
     add hop to graph (if it's not there already) 

你在做什麼是增加自己和設備之間的每個網絡躍到圖形結構。如果已經找到一個節點(跳躍),那麼你添加一個新的邊緣。如果不是,則添加邊和頂點。最終結果將是網絡中每個節點的圖形以及到達它們的路徑 - 拓撲。

所以你所要做的就是自己實現traceroute,建立圖結構來存儲你的traceroute運行結果,然後做一些很好的事情來繪製它!這些都可能產生很多自己的問題。

正如你已經標記了這個Objective-C,我會做一個飛躍,並假設你在Mac上這樣做。如果是這樣,Cocoa的繪圖API可以很好地滿足您的圖形需求。

+0

是的,我在Linux和Mac都做過,所以我可以使用Cocoa的繪圖。事情是我沒有使用可可,也沒有太多時間學習。所以我不得不使用任何庫是最快的學習和最多的文檔 – gvalero87 2010-11-12 00:47:32

+0

我不知道你的項目的全部範圍,但如果你可以用@ CodeninjaTim的建議在下面脫身,那會更容易,更容易對你來說(困難的一點是沒有畫出線條和矩形,它正在弄清楚如何佈置可可不會幫助你的情節)。可可繪圖非常簡單,蘋果的教程非常好,但是如果你走這條路線,我發現這個http://cocoadevcentral.com/d/intro_to_quartz/作爲第一個介紹非常有幫助。 – 2010-11-12 14:01:43

1

對於繪製最簡單的方法可能是以點形式輸出文件,然後用graphviz將其圖形化。

+0

謝謝@Codeninja,最終的答案是做兩件事,運行僞@Tim提出的算法,並且在網絡規範中編寫一個點文件。 – gvalero87 2010-11-15 21:10:29