每次调用都有Scapy AttributeError:'module'对象没有属性'*'

时间:2014-03-02 16:40:20

标签: python scapy

我已经从我的Ubuntu机器(Python 2.7)上的软件包存储库安装了Scapy,我正在尝试从文件中运行此代码:

import scapy
dg = scapy.IP()
pcap = scapy.rdpcap("../tst/Http.cap")
scapy.send(IP())

跑步给出错误, AttributeError: 'module' object has no attribute 'IP'

在第3行注释掉IP调用并运行会出错, AttributeError: 'module' object has no attribute 'rdpcap'

同时评论第4行,你得到了, AttributeError: 'module' object has no attribute 'send'

很明显,当使用''python''调用时,此代码会失败,但是当我手动将每个命令输入到Python shell中时,它会按预期工作。我在三个新的Python安装上观察到了这种行为 - 两个在Ubuntu中,一个在Windows中。其他人可以看到这个错误的原因吗?

1 个答案:

答案 0 :(得分:3)

您需要将Scapy导入全局命名空间。

来自Scapy module documentation -

  

注意:在Scapy v2中使用scapy.all import *而不是scapy import *。

也可在"Using Scapy to build your own tools"中找到。

所以你的代码应该是 -

from scapy.all import *

dg = IP()
pcap = rdpcap("../tst/Http.cap")
send(IP())