激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python基于scapy實現修改IP發送請求的方法示例

Python基于scapy實現修改IP發送請求的方法示例

2020-11-25 00:07yueguanghaidao Python

這篇文章主要介紹了Python基于scapy實現修改IP發送請求的方法,涉及Python網絡編程中使用scapy操作IP的相關實現技巧,需要的朋友可以參考下

本文實例講述了Python基于scapy實現修改IP發送請求的方法。分享給大家供大家參考,具體如下:

今天同事想測試WAF的頁面統計功能,所以需要模擬多個IP向多個域名發送請求,也就是需要修改源IP地址。這個如果使用socket庫就比較麻煩了,

需要使用raw socket,相當麻煩。還好咱有scapy,輕松搞定。

DOMAIN是我隨機構造的域名庫,SOURCE也是隨機構造的源IP地址。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/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 i686; en-US; rv:1.9.2.3) Presto/2.2.15 Version/10.10"
)
TOP_DOMAIN = ('com','org','net','gov','edu','mil','info','name','biz')
DOMAIN = ["www.%s.%s" %(
    '.'.join(''.join(random.sample(string.ascii_lowercase, random.randint(2,6))) for x in range(random.randint(1,2))),
    random.choice(TOP_DOMAIN))
    for _ in range(100)
]
SOURCE = ['.'.join((str(random.randint(1,254)) for _ in range(4))) for _ in range(100)]
class Scan(Thread):
  HTTPSTR = 'GET / HTTP/1.0\r\nHost: %s\r\nUser-Agent: %s\r\n\r\n'
  def run(self):
    for _ in xrange(100):
      domain = random.choice(DOMAIN)
      http = self.HTTPSTR % (domain,random.choice(USER_AGENTS))
      try:
        request = IP(src=random.choice(SOURCE),dst=domain) / TCP(dport=80) / http
        #request = IP(dst=domain) / TCP(dport=80) / http
        send(request)
      except:
        pass
task = []
for x in range(10):
  t = Scan()
  task.append(t)
for t in task:
  t.start()
for t in task:
  t.join()
print 'all task done!'

但這將導致一個問題,由于我們域名是隨機構造的,發送請求肯定首先查找DNS,很可能解析失敗。這里有兩個方法解決這個問題:

1.將所有域名添加到hosts本地文件中,IP可以為服務器地址

2. 由于hosts文件不支持通配符表示,所以可以使用DNS代理,或者自己寫小工具,想怎么解析就怎么解析,這里有一個https://github.com/phuslu/dnsproxy/blob/master/dnsproxy.py

希望本文所述對大家Python程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产三级国产精品国产普男人 | 小视频在线看 | 久久久久久久久久久影视 | 久草在线资源福利站 | 日本看片一区二区三区高清 | 欧美一区二区精品夜夜嗨 | 黄网免费看 | 深夜激情视频 | 天天夜干| 26uuu成人人网图片 | 欧美视频不卡 | 国内毛片视频 | aa国产视频一区二区 | 国产精品久久久久久久久久久久午夜 | 成人在线视频免费 | 色播av在线 | 成人福利网 | 国产精品成aⅴ人片在线观看 | 亚洲欧美日韩在线 | 特黄一区二区三区 | 久久国产精品久久久久久久久久 | 日韩中文字幕一区二区三区 | 毛片免费大全短视频 | 亚洲一级成人 | 久久影院yy6080 | 日韩av日韩| 亚洲成人福利 | 久久精品视频网址 | 国产免费一区二区三区在线能观看 | 免费看h网站 | 日本在线播放一区二区 | wwwxxx免费视频 | 久久男 | 国产精品视频在线观看免费 | 欧美日韩在线视频一区 | 日日草日日干 | 黄色香蕉视频 | 久久丝袜脚交足黄网站免费 | 成人店女老板视频在线看 | 成年免费大片黄在线观看岛国 | 制服下着マ○コ航空5 |