0
req = ['M-SEARCH * HTTP/1.1',
           'HOST: 239.255.255.250:1900',
           'MAN: "ssdp:discover"',
           'ST: ssdp:all',
           'MX: 3',
           "", ""]
req = '\r\n'.join(req)
sock = socket(AF_INET, SOCK_DGRAM)
[sock.sendto(req, ('239.255.255.250',1900)) for i in range(3)]
resp, (addr,port) = sock.recvfrom(1024)

このコードで実行する SSDP 検出要求は、すべての LAN 接続デバイス (samsung tv、sky+hd ボックス、ラップトップ、PC) ではなく、rootdevice のみを取得します。
すべてのデバイスを表示する方法を知っている人はいますか?

4

1 に答える 1

0

あなたは1つの答えを待つだけなので、1つしか得られないのは当然のことです:)これにより、それらすべてが表示されます(デバイス/サービスが送信する重複を含む)。

while (True):
    resp, (addr,port) = sock.recvfrom(1024)
    print resp
于 2015-03-06T14:11:26.053 に答える