编辑(30.10.19)
安装 Scapy
Scapy
的官方文档列出了可能的捆绑包:
- 默认值,仅 Scapy :
$ pip install scapy
- 推荐, Scapy 和 iPython :
$ pip install --pre scapy[basic]
- 完整, Scapy 及其所有主要依赖项:
$ pip install --pre scapy[complete]
安装可选的依赖项
Scapy
需要某些特殊功能的某些依赖项,例如绘图,2D和3D图形,WEP解密,PKI操作和TLS解密,指纹识别和VOIP。这些软件大多数都可以通过
pip 安装。 Scapy
的官方文档提供了它们以及一些示例,这些示例测试了安装是否成功。
配置 libpcap 集成
Scapy
的官方文档指出,自最新版本以来,它可以在本机运行,但是可以将其配置为使用 libpcap ,可以使用 Homebrew 或
MacPorts 进行安装。两种安装方法都可以正常工作,但是使用 Homebrew 通过
Travis CI 运行单元测试。需要注意的是 Libpcap库
可能已安装的,例如,如果 tcpdump的 安装,如在案件
OSX
。
使用 自制软件 安装 __
$ brew update # update Homebrew$ brew install libpcap # install libpcap
通过在 Scapy中 启用它
from scapy.config import conf; conf.use_pcap = True。
使用 MacPorts 安装 __
$ sudo port -d selfupdate # update MacPorts$ sudo port install libpcap # install libpcap
通过在 Scapy中 启用它
from scapy.config import conf; conf.use_pcap = True。
编辑(27.05.15)
该回答指出所有提到的问题均已修复,并提供了一种更为简单的安装方法。但是,它的注释表明,尽管它似乎可以在
OS X 10.10 Yosemite 和 OS X 10.11 El Capitan上运行 ,但在某些其他版本上可能会失败。
$ brew install libdnet --with-python$ pip install pcapy$ pip install scapy
如果 自制 的
site-packages在不 Python的
s’的
sys.path变量,下面应执行(参见此获得更多信息),与实际 的用户名 替换占位符
$ mkdir -p /Users/<USERNAME>/Library/Python/2.7/lib/python/site-packages$ echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/<USERNAME>/Library/Python/2.7/lib/python/site-packages/homebrew.pth原始答案
如
Scapy
的安装指南所述,您尚未完成 libdnet 及其
Python
包装程序的安装:
__
$ wget https://github.com/dugsong/libdnet/archive/libdnet-1.12.tar.gz$ tar xfz libdnet-1.12.tgz$ ./configure$ make$ sudo make install$ cd python$ python2.5 setup.py install
如果您的系统是64位,请改用以下编译命令:
$ CFLAGS='-arch i386 -arch x86_64' ./configure$ archargs='-arch i386 -arch x86_64' make
此外,请确认您已安装正确的版本,即1.12而不是1.11。
如果失败,那么尝试通过安装 MacPorts的
,并使用它
dnet.so的文件,描述在这里:
$ port selfupdate$ port upgrade outdated$ port install py27-libdnet$ port install libdnet $ cp /opt/local/Library/frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/dnet.so /Library/Python/2.7/site-packages
该链接还建议更改
/Library/Python/2.7/site-packages/scapy/arch/unix.py(fix
OSError:Device not configured)中的一些代码。
将第34行更改为:
f=os.popen("netstat -rn") # -f inet至:
f=os.popen("netstat -rn | grep -v vboxnet") # -f inet如下:
def read_routes(): if scapy.arch.SOLARIS:# f=os.popen("netstat -rvn") # -f inet f=os.popen("netstat -rn | grep -v vboxnet") # -f inet如果仍然出现错误
OSError: Device notconfigured,请尝试对
if子句的其他分支(特别是对其子
else分支)执行类似的更改,如此答案中所述。



