我正在尝试使用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一起使用。经过一些谷歌搜索,我遇到了this post,看起来它可能是一个答案,但两个链接都不再有效。关于这个问题的任何意见将不胜感激。
提前谢谢你,
赖安
答案 0 :(得分:1)
我认为某些数据包类型支持并不适用于所有体系结构。您需要说明您尝试在(OS X,Linux,Windows)上使用它的内容以及PyPy的最低版本。此外,bugs.pypy.org是正确的地方,而不是在这里。
答案 1 :(得分:0)
当没有足够的权限运行scapy时,我遇到了这个错误。尝试以系统管理员身份运行它。