scapy sniff函数没有捕获任何数据包

2024-04-26 07:52:38 发布

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

我一直在关注Seitz的black hat python书,他给出了一个使用scapy库捕捉网络流量的例子。在

import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *

def packet_callback(packet):
    print packet.show()

sniff(filter="",iface="any",prn=packet_callback, count = 1)

我运行上面的函数如下:sudo python sniffer.py并打开googlechrome到一个页面。没有数据包被捕获。我对一个域执行ping请求,但没有捕获到任何内容。我希望print packet.show()行打印发送的第一个数据包。在

所有这些都是通过无线互联网连接在MacBookPro上运行的。在

有人能帮我排除故障吗?在


Tags: importpacketlogginghatshowcallback数据包例子
2条回答

iface参数需要接口的确切名称。很可能您没有名为ANY的接口。您可以省略参数,这很可能是您在本例中必须做的,或者使用实际的接口名称(例如“eth0”)。在

实际上,当我尝试你的代码时,我得到了一个例外“没有这样的设备”。这是你实际运行的代码吗?在

另外,请写scapy版本。我使用的是python3版本,可以从http://github.com/phaethon/scapy或scapy-python3获得。在

如果您想让scapy嗅探所有接口,只需删除iface=“any”参数。因为“any”不是一个接口,因此scapy不能嗅探。在

同时删除filter参数,因为它没有应用任何过滤器。 正确的命令应该是这样的。在

sniff(prn=packet_callback, count = 1)

相关问题 更多 >