2011-11-07 42 views
1

我想寫一個程序,掃描一個IP範圍,並檢測IP是否是路由器的地址。如何檢測路由器?

目前我使用從我的電腦traceroute到網絡中的所有主機。但是,我相信如果路由器不是路由器,必須有某種方法可以直接「詢問」主機的IP地址?順便說一下,你知道任何程序/開源已經這樣做嗎?

+2

有沒有辦法直接問。有些東西可能會提示rip或ospf或bgp流量,但除了嘗試之外,沒有其他可以肯定的答案。 – Flexo

+2

路由器有一個像其他任何IP。如果數據包的目的地不是「本地」的,它恰巧將你的數據包發送到其他地方。如果它是一個路由器,你無法從一個IP中知道。 –

回答

1

路由器應該會談論一些常規IP節點不需要的協議(實際上是一個整齊的簇),然後有一些協議更常見(即使是非路由器節點也是如此)。

僅限路由器的協議:

  • VRRP
  • IGRP/EIGRP
  • OSPF
  • BGP
  • RIP

你可以做主動探測上的,即發送一個數據包(表現得好像你是另一個路由器或者一個終端節點)並且檢查t o看看路由器(如果有的話)發送什麼樣的響應。

另外,你可以做被動探測,比如「嗅探」,即注意各種節點發出的IP數據包。有些路由器通常只發送出去(大部分來自上面的列表)。

常見的協議,但實際上可以告訴你很多:

  • SNMP(esply不安全的人的喜歡V1/V2,很容易對付,而無需建立安全會話)

其他方式:

  • 端口掃描(其實可以告訴你一個真實的很多),例如所有路由器都具有一定的管理端口(雖然,他們往往被鎖定,由於SECURI TY問題)

你想要做什麼往往是很多「網絡管理」軟件做的,「發現」功能/其他節點網絡中的功能。而且,沒有一個適合所有解決方案的尺寸。他們使用一堆不同的方法,啓發式來最終找出其他節點是什麼。

1

跳到並不僅僅是一個端點的任何節點都是一個路由器。但是,這不允許您檢測到沒有連接可達設備的路由器。 (任何關於我的答案是否有價值的輸入都會很棒!)

相關問題