栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Scapy在osx上安装失败,出现dnet导入错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Scapy在osx上安装失败,出现dnet导入错误

编辑(30.10.19)

安装 Scapy

Scapy
的官方文档列出了可能的捆绑包:

  • 默认值,仅 Scapy
    • $ pip install scapy
  • 推荐, ScapyiPython
    • $ 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 YosemiteOS 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
分支)执行类似的更改,如此答案中所述。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596621.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号