执行UPNP扫描不会返回Philips Hue Bridge

我试图实现我自己的UpNP扫描,它主要是工作,并certificate这不是我我有一个Windows程序,可以让你发送数据包,看看回复什么。

我正在发送一个数据包到端口1900上的239.255.255.250 ,并发送以下数据:

 M-SEARCH * HTTP/1.1 Host: 239.255.255.250:1900 Man: "ssdp:discover" MX: 10 ST: ssdp:all 

只是为了进一步的信息,在我的Java代码(Android)中,我有以下,但我得到了与testing包应用程序相同的响应:

 try { byte[] sendData = new byte[1024]; //byte[] receiveData = new byte[1024]; byte[] receiveData; String mSearch = "M-SEARCH * HTTP/1.1\r\nHost: 239.255.255.250:1900\r\nMan: \"ssdp:discover\"\r\nMX: 10\r\nST: ssdp:all\r\n\r\n"; sendData = mSearch.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, InetAddress.getByName("239.255.255.250"), 1900); DatagramSocket clientSocket = new DatagramSocket(); clientSocket.send(sendPacket); while (keepGoing) { receiveData = new byte[1024]; receivePacket = new DatagramPacket(receiveData, receiveData.length); clientSocket.receive(receivePacket); String response = new String(receivePacket.getData()); if (response == null || response.length() == 0) { keepGoing = false; } else { iupnpScan.updateText(response); } } iupnpScan.complete(true); return true; } catch (UnknownHostException ex) { Log.e("MainActivity", "Unknown Host Exception: " + ex.toString()); } catch (SocketException ex) { Log.e("MainActivity", "Socket Exception: " + ex.toString()); } catch (IOException ex) { Log.e("MainActivity", "IO Exception: " + ex.toString()); } iupnpScan.complete(false); return false; 

我得到一些设备回来,如我的智能电视,路由器和NAS,但飞利浦的色调桥从来没有在答复中返回。

飞利浦Hue Bridge是不是以不同的方式实现UpNP,我只能看到他们现在发送什么样的响应来find它。

谢谢

Solutions Collecting From Web of "执行UPNP扫描不会返回Philips Hue Bridge"

虽然飞利浦网站指出它支持UPnP,但我不知道它是否属实。

我会尝试扫描整个networking,并通过IPtestingIP。 是的,我知道,这不是标准所说的,有时候现实是疯狂的。

这个发现已经在这里实现了。

我过去编写了networkingsearch(寻找树莓派),我可以使用的最好方法是将MAC地址与我已知的地址开头匹配。 幸运的是, 飞利浦发布了他们的MAC地址范围 。

我也在为这种行为而苦苦挣扎。 经过一些试验和错误之后,我意识到Hue Bridge似乎并不了解"围绕ssdp:发现值”这些引号在IETF草案中也不存在: https : //tools.ietf.org/html/草案才-SSDP的v1-03

以下要求对我成功了:

 M-SEARCH * HTTP/1.1 ST: ssdp:all MX: 3 MAN: ssdp:discover HOST: 239.255.255.250:1900 

这是我得到的回应:

 HTTP/1.1 200 OK HOST: 239.255.255.250:1900 EXT:CACHE-CONTROL: max-age=100 LOCATION: http://192.168.xxx.xxx:80/description.xml SERVER: Linux/3.14.0 UPnP/1.0 IpBridge/1.16.0 hue-bridgeid: 001788FFFE29D301 ST: urn:schemas-upnp-org:device:basic:1 USN: uuid:2f402f80-da50-11e1-9b23-00178829d301