这是我生成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/

10-10 09:46