gpt4 book ai didi

python - PyCharm:Scapy Unresolved 引用

转载 作者:太空狗 更新时间:2023-10-30 00:53:34 25 4
gpt4 key购买 nike

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

我的问题是 PyCharm 给我一些错误。
它将 IPTCPEther 等的每次使用标记为 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")

...

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

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

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

最佳答案

这是一个 PyCharm 问题。 Scapy 使用 dynamic loading (使用 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 有 Ether, ARP..
  • scapy.layers.dot11 用于 802.11 内容
  • scapy.utils 用于 wrpcap, rdpcap...
  • scapy.config 用于 conf 对象(具有 conf.routeconf.route6 等属性>)

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

关于python - PyCharm:Scapy Unresolved 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45691654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com