ICMP目标无法到达错误scapy

2024-10-01 15:30:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在测试ICMP响应:
当我使用Scapy将UDP段/数据包发送到端口时,它会被发送到目的地,说“数据包格式不正确(未知操作)”,而目的地会用正确的ICMP port unreachable消息进行应答。 有人能解释一下吗?还是我犯了个愚蠢的错误? 这是我这样做的脚本

# Generate packet
pkts3 = IP(dst="10.0.0.2")/UDP()/Raw(RandString(size=120))
#print pkts
pkts3[UDP].flags = "S"

pktList3 = []
for pktNum3 in range(0,5):
    pktList3.extend(pkts3)
    pktList3[pktNum3][UDP].dport = 520 # Pkt has Ran PortNo.
    print pktList3[pktNum3].summary()
    #print len(pktList[pktNum])
    #wrpcap('tcp-packets.pcap',pktList[pktNum])

# Send the list of packets send(pktList)
start_time3=time.time()
send(pktList3)
totalTime = time.time()-start_time3
totalBytes=(5*120)/totalTime
#print pktList3[0].show()
print pktList3[0].show2()
print totalBytes,"Seconds"

Tags: sendtime数据包startudpprintpacketsicmp
1条回答
网友
1楼 · 发布于 2024-10-01 15:30:54

您可以执行以下操作(Scapy 2.2.0)

1)使用Scapy提供的ICMP数据包(似乎您的数据包不正确)

from scapy.layers import inet, inet6
icmpPacket = inet.ICMP()

然后像往常一样用操作符/连接。ICMP通过IPv4运行。在

2)除了前一点,您还需要用Scapy修改包中的Ethernet部分。您可能需要发送方和接收方的正确MAC地址才能获得正确的答复。在

示例:

相关问题 更多 >

    热门问题