1

我开始疯狂阅读论坛并尝试不同的 Java UPnP 库,但在我的网络中找不到 IGD。

首先,我必须指出,UPnP 在我用 C++(使用 miniupnp)制作的程序中运行良好,因此我的路由器已正确配置为与 UPnP 一起使用。

Sending M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
ST: urn:schemas-upnp-org:device:InternetGatewayDevice:1
MAN: "ssdp:discover"
MX: 2

M-SEARCH Reply:
ST: urn:schemas-upnp-org:device:InternetGatewayDevice:1
Location: http://192.168.25.50:1780/InternetGatewayDevice.xml
...

我尝试使用 weupnp(一种用于 java 的 miniupnp)、使用 sbbi upnp lib 和 Cling upnp 开发应用程序,但奇怪的是所有三个 API 都无法从我的路由器中找到响应。

有人知道 Java upnp API 是否有一些我缺少的依赖项或要求吗?

谢谢您的帮助。

4

3 回答 3

0

请注意,EPC2425 也可能是一个问题,它知道吃 SSDP 数据包:https ://sonos.custhelp.com/app/answers/detail/a_id/42/~/network-hardware-compatibility

于 2013-06-12T11:39:41.877 回答
0

Weupnp 0.1.2 can now focus on specific ST and filter replies according to that.

As jishi says, lots of potential problems came from upnp:rootdevice messages.

If you still have need for this, may I suggest you to try the latest version of weupnp?

于 2013-05-02T22:46:21.323 回答
0

是来自您的 Java 应用程序还是 C++ 应用程序的请求跟踪?我知道一些框架使用 ST: upnp:rootdevice 扫描设备,这使得一些路由器只宣布自己,而不是任何其他设备。如果您在路由器中关闭 upnp,它就会开始转发它们。

但基本上这是一个损坏的框架,您应该能够定义您正在扫描的 ST。

如果您也可以为您的 Java 应用程序提供网络转储,那将很有用。

于 2013-01-04T13:04:28.087 回答