我正在尝试使用 PyPy 和 Scapy 嗅探无线适配器。我在 Ubuntu Linux 上,所以我使用 airmon-ng 将我的卡置于监控模式,打开一个 REPL,然后输入以下内容(在导入 scapy 之后):
sniff(prn=lambda pkt: pkt.summary(), iface='mon0')
这在 CPython REPL 中运行良好。但是,在 PyPy REPL 中,我收到以下错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "scapy/sendrecv.py", line 550, in sniff
s = L2socket(type=ETH_P_ALL, *arg, **karg)
File "scapy/arch/linux.py", line 452, in __init__
self.ins.bind((iface, type))
File "<string>", line 1, in bind
error: unknown address family
如果我关闭监控模式并尝试嗅探标准适配器 (wlan0),也会发生这种情况。但是,它似乎确实适用于非无线接口 (eth1)。
PyPy 兼容性索引将 Scapy 列为使用 PyPy。经过一番谷歌搜索,我发现这篇文章看起来可能是一个答案,但两个链接都不再有效。任何有关该主题的意见将不胜感激。
先感谢您,
瑞安