ネットワークに接続されている upnp 準拠のメディア レンダラー デバイスを一覧表示できるコードを実装したいと考えています。私はこれをグーグルで検索し、ねじれたウェブサイトで次のコードを見つけました
私のマシンに2つのネットワーク(イーサネットとwifi)が接続されている場合、1つのネットワークのデバイスのみがリストされます。
code
from twisted.internet.protocol import DatagramProtocol
from twisted.internet import reactor
import re
class MulticastPingPong(DatagramProtocol):
XMLNS = "{urn:schemas-upnp-org:device-1-0}"
def startProtocol(self):
# Join the multicast address, so we can receive replies:
self.transport.joinGroup("239.255.255.250")
def datagramReceived(self, datagram, address):
if(re.search("USN:.*MediaRenderer", datagram, flags=re.IGNORECASE)):
# code to print friendly name
reactor.listenMulticast(1900, MulticastPingPong(), listenMultiple=True)
reactor.run()
複数のネットワークのデバイスを検索するには?