我正在尝试使TCP数据包发送到另一台计算机500次。我创建了以下代码:
from scapy.all import *
from scapy.utils import rdpcap
#Create your own packets
data = 'This is a test'
myPacket = Ether(src="00:E0:4C:00:02:42",dst="00:E0:4C:01:08:99")/IP(src="169.254.162.71/16",dst="169.254.208.208/16")/TCP()/Raw(load=data)
print(myPacket.show())
for i in range (0,500):
sendp(myPacket, iface="Ethernet 4") # sending packet at layer 2
问题是,当我运行此代码时,由于某些原因,计算机收到的源IP递增的数据包,而目标IP则错误:
任何解决此问题的帮助,将不胜感激。
您地址中的/16
在CIDR表示法中称为网络掩码。这意味着您的地址是包含169.254.0.0
和169.254.255.255
之间所有可能地址的子网。 (与源IP相同)参见https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing和https://en.wikipedia.org/wiki/Private_network
Scapy将发送带有所有可能地址的256x256x256x256(同时包含sr
和dst
的)数据包,从0.0
地址开始。您只需要删除/16
。