Python3 - 在 OS 中安装 Scapy
Python3 - installing Scapy in OS
我安装了网络模块Scapy。
当我导入 scapy (import scapy
) 时,一切正常。当我从 scapy (from scapy.all import *
) 导入所有内容时,会出现此错误:
Traceback (most recent call last):
File "/Users/***/Downloads/test.py", line 5, in <module>
from scapy.all import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/all.py", line 16, in <module>
from .arch import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/__init__.py", line 75, in <module>
from .bsd import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/bsd.py", line 12, in <module>
from .unix import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/unix.py", line 22, in <module>
from .pcapdnet import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/pcapdnet.py", line 22, in <module>
from .cdnet import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/cdnet.py", line 17, in <module>
raise OSError("Cannot find libdnet.so")
OSError: Cannot find libdnet.so
我在另一个 post 上发现我们可能必须下载额外的模块才能使 scapy 充分工作。具体应该怎么做?
我尝试使用 (port ** install) 但没有用,因为端口不再受支持?如果你知道如何让它在 python3 中工作,我会很活跃。这里有更多的附加信息:
python 3.4.3
mac os 10.10.4
scapy-python3==0.14
编辑:另一个有趣的事情是:
除了 Linux 之外的所有 OS 都应该安装 libpcap 来发送和接收数据包(不是 python 模块 - 只是 C 库)。推荐使用libdnet发送数据包,没有libdnet的数据包将由libpcap发送,有限制。此外,netifaces 模块可用于替代和可能更清洁的方式来确定本地地址。
资料来源:https://pypi.python.org/pypi/scapy-python3/0.11
Dnet 似乎只适用于 2.7 版:https://pypi.python.org/pypi/dnet/1.12
最新编辑:此问题已在最新版本的 scapy 上修复,只需使用 pip install scapy>=2.4.0
更新您的 scapy 版本
您必须安装 libdnet。不是 python 库(如您所述,它不适用于 python3),而是库本身。系统中某处必须有库文件 libdnet.so,python 会在其中搜索库。下载 libdnet 源代码并编译应该可以正常工作:
wget http://libdnet.googlecode.com/files/libdnet-1.12.tgz
tar xfz libdnet-1.12.tgz
cd libdnet-1.12
./configure
make
此外,有可能使用 libpcap 发送数据包而不使用 libdnet,但我建议先尝试让 libdnet 工作。
您现在可以使用以下命令轻松地 和 Homebrew 安装它:
brew install libdnet
安装 Homebrew 之后。
您可以尝试以下方法:
git clone https://github.com/secdev/scapy
cd scapy
./run_scapy
我安装了网络模块Scapy。
当我导入 scapy (import scapy
) 时,一切正常。当我从 scapy (from scapy.all import *
) 导入所有内容时,会出现此错误:
Traceback (most recent call last):
File "/Users/***/Downloads/test.py", line 5, in <module>
from scapy.all import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/all.py", line 16, in <module>
from .arch import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/__init__.py", line 75, in <module>
from .bsd import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/bsd.py", line 12, in <module>
from .unix import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/unix.py", line 22, in <module>
from .pcapdnet import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/pcapdnet.py", line 22, in <module>
from .cdnet import *
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scapy/arch/cdnet.py", line 17, in <module>
raise OSError("Cannot find libdnet.so")
OSError: Cannot find libdnet.so
我在另一个 post 上发现我们可能必须下载额外的模块才能使 scapy 充分工作。具体应该怎么做? 我尝试使用 (port ** install) 但没有用,因为端口不再受支持?如果你知道如何让它在 python3 中工作,我会很活跃。这里有更多的附加信息:
python 3.4.3
mac os 10.10.4
scapy-python3==0.14
编辑:另一个有趣的事情是:
除了 Linux 之外的所有 OS 都应该安装 libpcap 来发送和接收数据包(不是 python 模块 - 只是 C 库)。推荐使用libdnet发送数据包,没有libdnet的数据包将由libpcap发送,有限制。此外,netifaces 模块可用于替代和可能更清洁的方式来确定本地地址。 资料来源:https://pypi.python.org/pypi/scapy-python3/0.11
Dnet 似乎只适用于 2.7 版:https://pypi.python.org/pypi/dnet/1.12
最新编辑:此问题已在最新版本的 scapy 上修复,只需使用 pip install scapy>=2.4.0
您必须安装 libdnet。不是 python 库(如您所述,它不适用于 python3),而是库本身。系统中某处必须有库文件 libdnet.so,python 会在其中搜索库。下载 libdnet 源代码并编译应该可以正常工作:
wget http://libdnet.googlecode.com/files/libdnet-1.12.tgz
tar xfz libdnet-1.12.tgz
cd libdnet-1.12
./configure
make
此外,有可能使用 libpcap 发送数据包而不使用 libdnet,但我建议先尝试让 libdnet 工作。
您现在可以使用以下命令轻松地 和 Homebrew 安装它:
brew install libdnet
安装 Homebrew 之后。
您可以尝试以下方法:
git clone https://github.com/secdev/scapy
cd scapy
./run_scapy