Wireshark 是最常用的嗅探工具,且易于使用。在整个实验中我们将使用它。但是作为构建其他工具的基础模块, Wireshark 却很难胜任这一点。我们将使用 Scapy 来完成这一任务。这个任务的目标是学习如何在 Python 程序中使用 Scapy 进行包嗅探。以下提供了一个示例代码:
#!/usr/bin/env python3
from scapy.all import *
def print_pkt(pkt):
pkt.show()
pkt = sniff(iface='br-c93733e9f913', filter='icmp', prn=print_pkt)
上述代码将在 br-c93733e9f913 接口上嗅探数据包。请参阅实验环境设置部分的说明来获取正确的接口名称。如果要同时在多个接口上嗅探包,可以将这些接口放入一个列表,并将其分配给 iface 变量。以下是一个例子:
iface=['br-c93733e9f913', 'enp0s3']