【问题标题】:Finding information about a router on my network在我的网络上查找有关路由器的信息
【发布时间】: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


【解决方案1】:

如果您的路由器支持SNMP,那么这可能是一种方法。 system MIB 将返回有关品牌/型号等的基本信息,并且可能有一个企业 MIB 可以为您提供更多信息。您最初是如何找到路由器的?可能通过 SNMP 询问您的 local routing

SNMP4J 是 Java 常用的 SNMP 库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多