【问题标题】:How to find the network router's model programmatically如何以编程方式查找网络路由器的型号
【发布时间】:2015-06-10 04:47:46
【问题描述】:

我的本​​地网络中有一个路由器(型号:D-Link Micro Httd),我知道它的 IP 地址。我想使用 C# 以编程方式查找路由器的模型。同样在路由器上,SNMP 服务被禁用,我忘记了管理员密码。 我使用LanSweeper NMS,它找到了模型,我使用了nMap,它也找到了模型。 我也使用了 UPnP API,但即使它也找不到路由器。

这个应用程序如何找到路由器的型号,而 SNMP 服务被禁用并且我忘记了管理员密码?

【问题讨论】:

  • 他们显示完整的型号,还是只显示制造商?他们可以从 MAC 地址中获取。
  • 他们从 MAC 地址获得制造商,但他们获得模型名称,例如他们给我模型的“Micro_Httpd”。而且我不知道他们是怎么做到的?
  • 也许他们正确地使用了 UPnp 而你却没有?
  • 我找到了一些使用 UPnP 的项目(在 GitHub 和 CodePlex 中),但是他们找不到路由器。
  • 这个帖子stackoverflow.com/questions/10700179/…,说端口扫描可以提供更多信息,请问怎么办?端口扫描只说特殊端口打开或关闭。对吗?

标签: c# router


【解决方案1】:

如果您可以获取设备的 MAC 地址,那么您可以使用类似这里的在线服务来获取存储在 MAC 地址上的相关元数据。

http://www.macvendorlookup.com/api

一个例子是:

http://www.macvendorlookup.com/api/v2/00-23-AB-7B-58-99

返回以下内容:

[
   {
      "startHex":"0023AB000000",
      "endHex":"0023ABFFFFFF",
      "startDec":"153192759296",
      "endDec":"153209536511",
      "company":"CISCO SYSTEMS, INC.",
      "addressL1":"170 W. TASMAN DRIVE",
      "addressL2":"M\/S SJA-2",
      "addressL3":"SAN JOSE CA 95134-1706",
      "country":"UNITED STATES",
      "type":"oui24"
   }
]

更新:但是您特别提到了型号。遗憾的是,这不会在面向公众的 API 上可用,UPNP 可能对您有用。但是如果路由器没有启用 UPNP 或者它被阻止,那么这也不起作用。查看 Port Mapper(用 Java 编写)以获得一些灵感。

https://github.com/kaklakariada/portmapper

【讨论】:

  • 感谢您的回复。我知道并使用此服务查找制造商名称,但我想查找设备型号。
  • 我很抱歉。事后看来,我的回答并没有完全解决您问题的所有方面。我建议你尝试像Port Mapper 这样的工具。它有一些 UPNP 的实现,可能会帮助您确定要使用的最佳库/方法。它是开源的,但它是用 Java 编写的,但应该能让你走上正轨。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-26
  • 1970-01-01
  • 2014-09-13
  • 1970-01-01
  • 1970-01-01
  • 2020-09-22
  • 1970-01-01
相关资源
最近更新 更多