获取 UPnP 设备的 IP 地址

Posted

技术标签:

【中文标题】获取 UPnP 设备的 IP 地址【英文标题】:Get IP address of an UPnP device 【发布时间】:2013-06-29 16:05:02 【问题描述】:

我正在尝试找出连接到我的网络的 UPnP 设备的 IP 地址。在 Windows 上,我可以通过参考 *** 上的以下问题来获取此信息:

UPnP Multicast: missing answers from M-SEARCH (Discovery)

但是,在 Linux 上我该怎么做呢?

【问题讨论】:

您希望如何实现解决方案(shell 脚本、C++、Java)? 您对这款设备了解多少?可以访问路由器吗? IP 地址是动态建立的(使用 DHCP)还是固定的?您是否希望与您的 Linux 机器在同一个子网中? 对不起,我想在 shell 脚本中实现它。设备从 DHCP 获取其 IP。 假设您的子网上有很多设备,您将如何识别“正确的设备”?它是否响应特定命令?发送数据包? .... 在上述链接的 m-search 请求的响应中,我得到了一个具有特定“ST:urn:schemas-...”格式的 ST 标签。 【参考方案1】:

根据您识别正确设备的方式,您可以查看 gupnp-tools 包中的 gssdp-discover(它是 GUPnP 项目的一部分)。如果这不是您想要的,但您准备编写一些代码,请查看源代码:gssdp-discover 只有约 100 行 C 代码,因此您应该能够在几十行代码中完成您想做的事情蟒蛇...

例子:

$ gssdp-discover -t uuid:c013f58f-3072-4c3b-9df8-4f869c03edf2 -n 3
Using network interface wlan0
Scanning for resources matching uuid:c013f58f-3072-4c3b-9df8-4f869c03edf2
resource available
  USN:      uuid:c013f58f-3072-4c3b-9df8-4f869c03edf2
  Location: http://10.10.15.61:49152/description.xml
$ 

【讨论】:

以上是关于获取 UPnP 设备的 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章

UPnP检测延迟

如何访问 UPnP 设备的服务?

1900端口问题

UpnP Hacking

前端JS获取设备IP地址和唯一标识

linux下怎样获取网络设备的mac地址,ip地址等