-1

我正在做一个 dns_spoof 学校项目。我已将以下内容导入我的程序:

import netfilterqueue
import scapy.all as scapy

我的问题是,当我尝试使用 python2 解释器通过终端运行程序时,scapy 不起作用,而当我尝试使用 python3 解释器在终端中运行它时,netfilterqueue 不起作用。

尝试使用 python2 解释器运行程序时,出现以下错误:

root@kali:~/PycharmProjects/dns_spoof# python dns_spoof.py

        PIP package scapy-python3 used to provide scapy3k, which was a fork from scapy implementing python3 compatibility since 2016. This package was included in some of the Linux distros under name of python3-scapy. Starting from scapy version 2.4 (released in March, 2018) mainstream scapy supports python3. To reduce any confusion scapy3k was renamed to kamene. 
You should use either pip package kamene for scapy3k (see http://github.com/phaethon/kamene for differences in use) or mainstream scapy (pip package scapy, http://github.com/secdev/scapy).  

Traceback (most recent call last):
  File "dns_spoof.py", line 3, in <module>
    import scapy.all as scapy
  File "/usr/local/lib/python2.7/dist-packages/scapy/all.py", line 5, in <module>
    raise Exception(msg)
Exception: 
        PIP package scapy-python3 used to provide scapy3k, which was a fork from scapy implementing python3 compatibility since 2016. This package was included in some of the Linux distros under name of python3-scapy. Starting from scapy version 2.4 (released in March, 2018) mainstream scapy supports python3. To reduce any confusion scapy3k was renamed to kamene. 
You should use either pip package kamene for scapy3k (see http://github.com/phaethon/kamene for differences in use) or mainstream scapy (pip package scapy, http://github.com/secdev/scapy). 

当我尝试通过终端使用 python3 解释器运行程序时,出现以下错误:

root@kali:~/PycharmProjects/dns_spoof# python3 dns_spoof.py
Traceback (most recent call last):
  File "dns_spoof.py", line 2, in <module>
    import netfilterqueue
ModuleNotFoundError: No module named 'netfilterqueue'

所以 netfilterqueue 只在 python2 中工作,而 scapy 只在 python3 中工作。我该如何解决这个问题?我需要同时使用两者。

4

2 回答 2

0

安装正确的 scapy 版本

pip uninstall scapy-python3
pip install scapy

修复 python 2

于 2020-04-18T13:15:30.443 回答
0

python3+的netfilterqueue被命名为nfqp3,你可以安装它

pip3 install nfqp3

但是您将使用“import netfilterqueue”将其导入python3脚本中……不要问我为什么

不要忘记先在你的 linux 机器上安装 netfilterqueue

于 2021-04-16T23:32:54.463 回答