使用 Python 2.7 在 Windows 上运行 Scapy

Posted

技术标签:

【中文标题】使用 Python 2.7 在 Windows 上运行 Scapy【英文标题】:Running Scapy on Windows with Python 2.7 【发布时间】:2011-07-23 18:40:59 【问题描述】:

我喜欢在 Windows 7 下将 Scapy 与 Python v2.7 一起使用。

如何安装 Python 2.7 所需的模块 pypcap? 是否可以使用 py2exe 等分发工具将依赖于 Scapy 的 Python 脚本制作成独立的 Windows 应用程序?

我使用的特定 Python 发行版是 Enthought Python 发行版 7.02。

【问题讨论】:

使用最新版本。没有 pypcap 之类的。scapy.readthedocs.io/en/latest/installation.html#windows 【参考方案1】:

侵入性更新:请注意,此答案已过时,最新版本 (>=2.4.0) scapy 仅需要 Npcap(或 Winpcap)才能工作,而 IPython 用于安慰。看看official windows page

如果有人需要 Scapy for 64-bit + Python 2.7,我已经在此处上传了二进制文件:

https://github.com/Kondziowy/scapy_win64

dnet-1.12.win-amd64-py2.7.exe pcap-1.1.win-amd64-py2.7.exe scapy-2.2.0.win-amd64.exe

另外,你可能需要从the official site安装WinPcap


自己编译需要一些修复 - 我会尽快将它们提交到上游。

【讨论】:

这非常有帮助。谢谢。【参考方案2】:

很多答案已经过时了!

最新的 scapy 版本,你可以在官方 GitHub 页面上下载: https://github.com/secdev/scapy 无需旧的手动编译依赖项即可工作!

它们是两个简单的要求:IPython(用于控制台)和 npcap(或 winpcap)

您可以按照这里的官方教程进行操作: http://scapy.readthedocs.io/en/latest/installation.html#windows

【讨论】:

【参考方案3】:

使用circus 发布的链接,我为python 2.7.x 32 位的Scapy 创建了二进制安装。设置链接(带有依赖项)https://github.com/Kondziowy/scapy_win64

【讨论】:

【参考方案4】:

如果您没有强制使用 python2 的限制,您可以从 http://github.com/phaethon/scapy 或 pip install scapy-python3 尝试 scapy3k。

它不需要 dnet 也不需要 pypcap,不需要 C 编译。我使用以下配置 Windows 10/Anaconda 3.5/最新的 WinPcap。

【讨论】:

【参考方案5】:

使用 Python 2.7 在 Windows 上运行 Scapy 的最低要求似乎是:pyreadline、pcapy 和 dnet。最后两个是最难编译和/或查找预编译的二进制文件。上面的答案中列出了这些选项的一个选项。另一个下载,连同detailed steps 如何让 Scapy 在 Windows 上运行在:https://github.com/zlorb/scapy。这些步骤还描述了如何获取可选依赖项,例如 Gnuplot 和 Tex。

【讨论】:

【参考方案6】:

Dirk Loss 提供了一个Windows installer for the dnet package for Python 2.7。与Windows installer for the pypcap package for Python 2.7 一起,我能够在 Windows 上的 Python 2.7 上成功运行 Scapy。

【讨论】:

【参考方案7】:

问:如何安装所需的模块 pypcap

在 Windows 7 中使用 Scapy 是可能的,但它并不是开箱即用的。可以在此处找到安装指南:

http://www.secdev.org/projects/scapy/doc/installation.html#windows

我强烈建议切换到 python 2.6,因为这会让你的生活更轻松。

当您坚持使用 2.7 时,您将不得不自己编译一些 require 模块。此外,像 pypcap 这样的一些关键模块必须先打补丁才能使用 python 2.7 进行编译(请参阅pycap patch)。

Here 你会找到一些关于如何构建模块的指导。


问:是否可以将依赖于 scapy 的 python 脚本制作成独立的 windows 应用程序

是的,不是的。虽然您可以使用 py2exe 从您的 python 代码构建一个 EXE。 Scapy 使用WinPcap,除了您的应用程序之外,您还必须安装它。

【讨论】:

我认为最新的pypcap源码头(v1.1)不再需要补丁了。对我来说,它使用 Python 2.7 和 mingw-gcc 或 Visual Studio 构建得很干净。我遇到的问题是为 Windows Python 2.7 构建 libdnet(及其 Python 包装器)。有什么指点吗? 但是,是的,不幸的是,我们中的一些人坚持使用 Python 2.7。就我而言,我想将 scapy 集成到我们的测试框架中。 我没有任何关于如何针对 python 2.7 编译 libdnet 的指示。调查了一下,但看起来还没有希望。 我认为 py2.7 没有 dnet 的编译版本,尝试了很多搜索,但由于某种原因,Google Code 上的那个似乎对我不起作用。我在 py2.6 上使用 Scapy。如果有人发现任何东西,请更新帖子。

以上是关于使用 Python 2.7 在 Windows 上运行 Scapy的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 2.7 在 Windows 上修复 pip 安装证书问题? [复制]

如何在 Windows 上静默卸载 Python 2.7?

有没有办法在 Windows 上的 python 2.7 64 位上使用 ibm_db?

在 Windows 10 上本地运行 Python 2.7 Web 服务时禁止访问套接字消息

无法在 Windows 10 上安装带有 python 2.7 的 Django 版本 1.11.22

如何在 Windows 上的 Python 2.7 上安装 Tensorflow?