2014-03-04 38 views
0

我需要一些代碼(最好是Java)來定位SOHO型網絡上路由器的IP地址。作爲獎勵,我還想獲得路由器的品牌/型號以及固件版本。查找有關我的網絡上路由器的信息

我看到HNAP會完成這項工作,UPnP可以這樣做,而且他們都依賴於SSDP。問題是,這些事情似乎是不可靠的,因爲他們能夠關閉和/或我不確定所有的路由器甚至會支持這一點。

我該如何確切得到地址?答案在於DHCP嗎?

如果我確實得到的地址,有沒有什麼好方法可能獲得路由器上的信息? HNAP似乎是正確的選擇,但似乎沒有關於HNAP的信息和代碼。

有沒有人有任何代碼來做這些事情?

+0

有一些相當可怕的黑客[這裏](http://stackoverflow.com/q/11930/2071828)。不知道是否有一個跨平臺的方式做到這一點,而不依賴於路由器的配置。 –

+0

如果你需要在任何地方工作,UPnP,HNAP和SNMP都是不可能的:沒有任何東西可以保證SOHO路由器支持其中的任何一種。這也意味着你無法可靠地獲得品牌和型號。你可能想弄清楚如何在java中獲取默認網關的IP。 – jku

+0

我意識到我在這裏有兩個單獨的問題。我很驚訝獲得默認網關在Java中是如此的黑客攻擊。我也意識到獲得製造/模型並不能保證。但是,我測試過的所有4個路由器都對HNAP做出了很好的反應。有誰知道這是多麼廣泛的支持? –

回答

0

如果您的路由器支持SNMP,那麼這可能是一種方法。 system MIB將返回有關品牌/型號等的基本信息,並且可能會有企業MIB爲您提供更多信息。你怎麼最初找到路由器?可能通過SNMP詢問您的local routing

SNMP4J是Java常用的SNMP庫。