PyCharm:Scapy 未解决的参考

2024-03-21

我正在开发一个使用 scapy 用 python 编写的网络工具。
我使用 Pycharm 作为 IDE。
我的代码有效。因此,如果我运行它,一切都会按预期进行。

我的问题是 PyCharm 给了我一些错误。
它标志着每次使用IP, TCP, Ether, ... 作为Undefined Reference to ...

我的代码的相关部分如下所示

#!/usr/bin/env python
from scapy.all import *

...  
...  

syn = IP(src=src_ip, dst=dst_ip) / TCP(sport=src_port, dport=dst_port, seq=src_seq, flags="S")

...

我尝试了很多使用谷歌找到的东西,比如添加我的 src 文件夹作为源根目录,我刷新了我能找到的所有缓存并重新启动了 PyCharm 数十次,但没有任何效果......

由于代码可以工作,所以这是一个小问题,但我仍然希望我的 IDE 按预期工作

我在 MacOS 下工作并且使用虚拟环境


这是一个 PyCharm 问题。 Scapy 用途动态加载 https://github.com/secdev/scapy/blob/master/scapy/layers/all.py (using importlib)加载许多 pycharm 无法检测到的模块/自定义模块。这允许用户选择他们想要加载的层。

解决方法是从相关的 scapy 文件中导入您需要的任何内容,而不使用all。它更干净,但要做的时间更长。或者,如果您不寻找干净的东西,您可以在 IDE 中使用“添加异常”。

这里有一些有用的模块

  • scapy.layers.inet在那里你可以获得IP、TCP..
  • scapy.layers.inet6
  • scapy.layers.dns
  • scapy.sendrecv有 srp、sr、sr1、sendp、send...
  • scapy.supersocket直接访问 scapy 的套接字
  • scapy.layers.l2其中有以太币、ARP..
  • scapy.layers.dot11对于 802.11 的东西
  • scapy.utils for wrpcap, rdpcap...
  • scapy.config为了conf对象(具有诸如conf.route or conf.route6)

我建议做的是打开 Scapy shell(或导入from scapy.all import *在控制台中)并使用检查层/函数来自哪个模块help(...)。您还可以查看在线 API 参考(它有一个搜索栏)here https://scapy.readthedocs.io/en/latest/api/scapy.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyCharm:Scapy 未解决的参考 的相关文章

随机推荐