这是我生成HTTP流量的脚本
from scapy.all import *
from random import randint
import time
from threading import *
# Generate packet
pkts = IP(src="10.0.0.1",dst="10.0.0.2")/TCP()/"GET /HTTP/1.0\r\n\r\n"/Raw(RandString(size=120))
#print pkts
pkts[TCP].flags = "S"
pktList = []
for pktNum in range(0,20):
pktList.extend(pkts)
pktList[pktNum][TCP].dport = randint(1,65535) # Pkt has Ran PortNo.
print pktList[pktNum].summary()
print len(pktList[pktNum])
# Send the list of packets
start_time=time.time()
send(pktList)
print time.time() - start_time,"seconds"
#print start_time, "secs"
pktList[0].show()
现在的问题是我无法以自定义的字节/秒速率发送流量。我如何能够根据自己的需要发送?
最佳答案
请参考scapy上的文档,特别是第35页。您可以通过更改inter
命令中的send
参数来指定速率。
例如,要达到每秒100个数据包的速率,您可以编写:
send(pktList, inter = 0.01)
要获得更多控制,您可以在scapy中使用sendpfast命令,您可以在其中定义比特率(mbps参数):
sendpfast(pkt, pps=N, mbps=N, loop=0, iface=N)
关于python - 如何自行设定交通到达时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22921046/