我一直在关注Seitz的黑帽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并打开google chrome进入页面.没有数据包被捕获.我对域执行ping请求,但未捕获任何内容.我期望print packet.show()行能打印出第一个发送的数据包.
所有这些都可以通过无线互联网连接在Macbook Pro上运行.
有人可以帮我解决问题吗?
解决方法:
如果您希望scapy在所有接口上监听,只需删除iface =“ any”参数.由于“ any”不是接口,因此,scapy无法监听.
也请删除过滤器参数,因为它没有应用任何过滤器.
正确的命令是这样的.
sniff(prn=packet_callback, count = 1)