From 81c9a5602d0f7b6ba1ffcf6c270e7b0f380dd79c Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 27 Feb 2018 20:12:35 +0000 Subject: [PATCH] add ssdp query script --- upnp/ssdp-query.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 upnp/ssdp-query.py diff --git a/upnp/ssdp-query.py b/upnp/ssdp-query.py new file mode 100755 index 0000000..f7345e0 --- /dev/null +++ b/upnp/ssdp-query.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python2 +# +# From: +# https://blog.cloudflare.com/ssdp-100gbps/ +# No apparent license +# +# Usage: +# ssdp-query [IP [ssdp:alll]] +# +import socket +import sys + +dst = "239.255.255.250" +if len(sys.argv) > 1: + dst = sys.argv[1] +st = "upnp:rootdevice" +if len(sys.argv) > 2: + st = sys.argv[2] + +msg = [ + 'M-SEARCH * HTTP/1.1', + 'Host:239.255.255.250:1900', + 'ST:%s' % (st,), + 'Man:"ssdp:discover"', + 'MX:1', + ''] + +s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) +s.settimeout(10) +s.sendto('\r\n'.join(msg), (dst, 1900) ) + +while True: + try: + data, addr = s.recvfrom(32*1024) + except socket.timeout: + break + print "[+] %s\n%s" % (addr, data)