PyCharm:未解析的Scapy引用

eivgtgni  于 2023-08-05  发布在  PyCharm
关注(0)|答案(3)|浏览(190)

我正在开发一个网络工具,我用python用scapy写的。
作为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")

...

字符串
我尝试了很多我用谷歌找到的东西,比如添加我的src文件夹作为源根目录,我刷新了所有我能找到的缓存,并重新启动PyCharm几十次,但都不起作用...
由于代码的工作,这是一个小问题,但我仍然希望有我的IDE工作的预期
我在MacOS下工作,我使用虚拟环境

w46czmvw

w46czmvw1#

这是一个PyCharm问题。Scapy使用dynamic loading(使用importlib)加载pycharm无法检测到的许多模块/自定义模块。这允许用户选择他们想要加载的层。
解决方法是从他们的相关scapy文件中导入任何您需要的内容,而不使用all。它更干净,但要做的时间更长。或者,如果您不需要干净的东西,也可以在IDE中使用“添加异常”。
以下是一些有用的模块

  • scapy.layers.inet,您可以在其中获取IP、TCP..
  • scapy.layers.inet6
  • scapy.layers.dns
  • scapy.sendrecv具有srp、sr、sr 1、sendp、send...
  • scapy.supersocket直接访问scapy的插座
  • scapy.layers.l2,具有以太网、阿普..
  • scapy.layers.dot11用于802.11标准
  • scapy.utilswrpcaprdpcap...
  • conf对象的scapy.config(该对象具有conf.routeconf.route6等属性)

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

fwzugrvs

fwzugrvs2#

遇到同样的问题,尝试以这种方式导入:

from scapy.layers.inet import IP, UDP, wrpcap, Ether

字符串
对我很有效

cig3rfwq

cig3rfwq3#

以太网,IP…不直接在scapy中定义。所有:-(
现在,PyCharm可以给予你从相关的scapy文件中导入任何你需要的东西的建议:x1c 0d1x的数据

相关问题