【发布时间】:2014-03-04 09:57:19
【问题描述】:
我需要一些代码,最好是 Java,来定位 SOHO 类型网络中路由器的 IP 地址。作为奖励,我还想获得路由器的品牌/型号以及固件版本。
我看到 HNAP 可以完成这项工作,UPnP 可以完成这项工作,而且它们都依赖于 SSDP。问题是这些东西似乎不可靠,因为它们可以被关闭和/或我不确定所有路由器是否都支持这一点。
我怎样才能确定地得到地址?答案是否在于 DHCP?
如果我确实得到了地址,有什么好的方法可以获取路由器上的信息吗? HNAP 似乎是正确的选择,但似乎很少有关于 HNAP 的信息和代码。
有人有代码来做这些事情吗?
【问题讨论】:
-
有一些相当可怕的黑客攻击here。不确定是否有跨平台的方式来做到这一点,而不依赖于路由器的配置。
-
如果您需要它在任何地方都能正常工作,那么 UPnP、HNAP 和 SNMP 都是不可能的:没有任何东西可以保证 SOHO 路由器支持其中任何一种。这也意味着您无法可靠地获得品牌和型号。您可能想弄清楚如何在 java 中获取默认网关的 IP。
-
我意识到我在这里有两个单独的问题。我很惊讶在 Java 中获得默认网关是一种黑客行为。我也意识到不能保证获得品牌/型号。但是,我测试过的所有 4 款路由器都对 HNAP 响应良好。有谁知道它的支持范围有多广?
标签: java networking router upnp ssdp