在scapy上嗅探(wireshark)使用/不使用python打印ping两次

在scapy上嗅探(wireshark)使用/不使用python打印ping两次,python,scapy,Python,Scapy,基本上我有两台机器,一台是Ubuntu,我运行“嗅探”,另一台是Kali,运行“ping” 我无法理解为什么代码会打印两次,如果假定只发送一个包 我只希望打印“Hello World\x00\x00\x00\x00\x00\x00\x00\x00” 为什么会这样?我怎样才能修好它 提前谢谢 Ubuntu from scapy.all import * def xyz(pkt): #hexdump(pkt) if pkt['Raw']: print(pkt['Ra

基本上我有两台机器,一台是Ubuntu,我运行“嗅探”,另一台是Kali,运行“ping”

我无法理解为什么代码会打印两次,如果假定只发送一个包

我只希望打印“Hello World\x00\x00\x00\x00\x00\x00\x00\x00”

为什么会这样?我怎样才能修好它

提前谢谢

Ubuntu

from scapy.all import *

def xyz(pkt):
    #hexdump(pkt)
    if pkt['Raw']:
        print(pkt['Raw'])
sniff(count=10, prn=xyz, filter="icmp")
卡利


我想是这样的:

Ubuntu发送ICMP回显请求(第一个包)。

Kali接收并发送ICMP回显回复(第二个包)。

欢迎使用堆栈溢出!请看一看。堆栈溢出不鼓励代码图片,因为它不可搜索(即,请将它们移到您的问题)。
import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *

ping = Ether()/IP(dst="10.0.2.4")/ICMP()/Raw()
ping['Raw'].load = 'Hello World'
srp1(ping, timeout=2)