Quelle1)
Mit diesem Wissen und dem Paketgenerator hping3 sowie den Paketschnüfflern tcpdump und Wireshark lassen sich jedoch auch simple Skripte für Linux oder andere Unixe basteln, die Auskunft über im LAN anwesende UPnP-Geräte geben:
#!/bin/sh
SPORT=12121
DPORT=1900
MCAST=239.255.255.250
MYIP=`ifconfig eth0 | grep "inet Adresse:" | cut -f1 -d "B" | cut -f2 -d ":"`
TCPREG="dst port $SPORT and dst net $MYIP"
hping -c 1 -2 -s $SPORT -p $DPORT -d 102 -E ssdp-msearch-rootdevice.txt $MCAST
tcpdump -n $TCPREG
Die Skript-Variable SPORT enthält einen willkürlich gewählten Quellport, den hping beim Senden verwendet und über den tcpdump anschließend eingehende Antworten erhält. Der Paketgenerator hping erzeugt nun ein UDP-Paket, an das es 102 Byte Nutzdaten (-d) anhängt. Deren Inhalt entstammt der Datei ssdp-msearch-rootdevice.txt, die eine M-SEARCH-Anfrage für UPnP-Rootdevices enthält. Nachdem hping das Paket ins Netz gesendet hat, zeigt tcpdump alle eingehenden Anfragen an, die per UDP über den Port 12121 den Rechner erreichen. Möchte man den Inhalt des HTTP-Request sehen, hilft der parallel arbeitende Netzwerkschnüffler Wireshark. Das Skript und die Datei ssdp-msearch-rootdevice.txt
finden sich in diesem ZIP-Archiv.