今天同事想测试WAF的页面统计功能,所以需要模拟多个IP向多个域名发送请求,也就是需要修改源IP地址。这个如果使用socket库就比较麻烦了,
需要使用raw socket,相当麻烦。还好咱有scapy,轻松搞定。
DOMAIN是我随机构造的域名库,SOURCE也是随机构造的源IP地址。
#!/usr/bin/env python
#-*-encoding:UTF-8-*-
from scapy.all import *
from threading import Thread
from Queue import Queue
import random
import string
USER_AGENTS = ( # items used for picking random HTTP User-Agent header value
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_7_0; en-US) AppleWebKit/534.21 (KHTML, like Gecko) Chrome/11.0.678.0 Safari/534.21",
"Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)",
"Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.2) Gecko/20020508 Netscape6/6.1",
"Mozilla/5.0 (X11;U; Linux i686; en-GB; rv:1.9.1) Gecko/20090624 Ubuntu/9.04 (jaunty) Firefox/3.5",
"Opera/9.80 (X11; U; Linux i