执行UPNP扫描不会返回飞利浦Hue Bridge

Boa*_*rdy 11 java android upnp philips-hue

我正在尝试实现我自己的UpNP扫描,它主要是工作,并且为了证明这不是我,我有一个Windows程序,允许您发送数据包,看看有什么响应回来.

我正在向239.255.255.250端口发送数据包1900,我发送以下数据:

M-SEARCH * HTTP/1.1
Host: 239.255.255.250:1900
Man: "ssdp:discover"
MX: 10
ST: ssdp:all
Run Code Online (Sandbox Code Playgroud)

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

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;
Run Code Online (Sandbox Code Playgroud)

我收到了一些设备,比如我的智能电视,路由器和NAS,但飞利浦Hue桥在回复中从未返回.

飞利浦Hue Bridge是否以不同方式实现UpNP?我所能看到的就是他们现在发回的回应是什么,需要找到它.

rob*_*les 2

虽然飞利浦网站说它支持UPnP,但我不知道这是不是真的。

我会尝试扫描整个网络并逐个 IP 测试。是的,我知道,这不是标准所说的,但现实有时是疯狂的。

这个发现已经以这种方式实现了。

我过去编写了一个网络搜索(寻找 Raspberry PI),我可以使用的最佳方法是将 MAC 地址与我已知的地址开头相匹配。幸运的是,飞利浦公布了他们的 MAC 地址范围