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

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

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

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

【问题讨论】:

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

标签: linux upnp


【解决方案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
$ 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    相关资源
    最近更新 更多