python scapy模块安装后引用错误,python – scapy未解决的引用

我正在使用scapy在python中编写的网络工具.

作为IDE,我正在使用Pycharm.

我的代码有效.因此,如果我运行它,一切都按预期工作.

我的问题是PyCharm给了我一些错误.

它标志着IP,TCP,以太网的所有用途……作为未定义的参考…

我的代码的相关部分看起来像这样

#!/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文件导入您需要的任何内容,而不使用全部.它更干净但更长.或者,如果您没有寻找干净的东西,可以在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 …

> conf对象的scapy.config(具有conf.route或conf.route6等属性)

我建议做的是打开Scapy shell(或从控制台中的scapy.all import *导入)并使用help(…)检查层/功能是从哪个模块

标签:scapy,python,pycharm,ide

来源: https://codeday.me/bug/20191002/1843571.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值