以前成功的Python 3 Scapy安装,sniff()现在因AttributeError

时间:2017-11-13 20:09:44

标签: macos python-3.x scapy

在Mac OS 10.13.1上 首次使用Scapy进行简单的数据包嗅探项目。

在按照Mac OS的安装说明操作后,周末工作正常: https://phaethon.github.io/scapy/api/installation.html

硬件问题要求我将我的工作转移到另一台机器上,运行完全相同的操作系统。 我认为“没问题” - 设置一个新的Python 3 venv并重新安装第二台笔记本电脑上的依赖项(libdnet通过brew,libpcap和scapy3k通过pip)。 现在,使用Scapy中的sniff()进行简单测试会产生以下错误:

  

追踪(最近一次呼叫最后一次):

     

文件“”,第1行,

     

文件“/Users/ersheff/Virtualenvs/Scapy/lib/python3.6/site->packages/scapy/sendrecv.py”,第576行,嗅探

     

s = L2socket(type = ETH_P_ALL,* arg,** karg)

     

文件“/Users/ersheff/Virtualenvs/Scapy/lib/python3.6/site->packages/scapy/arch/linux.py”,第469行, init

     

self.ins = socket.socket(socket.AF_PACKET,socket.SOCK_RAW,> socket.htons(type))

     

AttributeError:模块'socket'没有属性'AF_PACKET'

我很清楚AF OSACK属性在Mac OS上不可用,并且特定于Linux,正如您所料,我对此问题的所有搜索都会得出答案。但是,如前所述,此方法之前在使用相同操作系统的其他计算机上工作。

不可否认,我是一个新手,但是阅读该错误使我看起来像Scapy错误地引用了arch目录中的linux.py文件,它应该引用bsd.py或unix.py文件(两者都存在)。

有什么想法吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

这个问题很老了。为了记录,官方scapy版本现在支持Python 3. OSX已经修复了他们的一面:

https://github.com/secdev/scapy

度过愉快的一周,