斯卡皮 - 名称错误"global name 'Padding' is not defined"



我试图编写小的http代理服务器,只是为了测试scapy如何处理带有StreamSocket的数据包。

from scapy.all import *
import socket
sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print "Start"
sk.bind(("127.0.0.1",8090))
sk.listen(1)
conn , addr = sk.accept()
ss = StreamSocket(conn)
r = ss.recv(2048)
print r
ss.close()

当我得到r = ss.recv(2048)行时,它说(在 scapy 2.2.0 上(:

Traceback (most recent call last):
File "<string>", line 254, in run_nodebug
File "C:Python26ProxyServermodule1.py", line 21, in <module>
    r = ss.recv()
File "C:Python26libsite-packagesscapysupersocket.py", line 126, in recv
    pad = pkt.getlayer(Padding)
NameError: global name 'Padding' is not defined

我尝试更新我的 scapy(从 2.2.0 到 2.3.2(,它做了同样的错误:

Traceback (most recent call last):
File "<string>", line 254, in run_nodebug
File "C:Python26ProxyServermodule1.py", line 21, in <module>
    r = ss.recv()
File "C:Python26libsite-packagesscapysupersocket.py", line 126, in recv
    pkt = self.basecls(pkt)
NameError: global name 'Padding' is not defined

请帮忙?对不起,我的英语不好

注意:我有 Windows 7 64 位,python 2.6 和现在的 scapy 2.3.2

我发现卸载并重新安装 scapy 后我没有重新启动我的机器,这导致了错误!对于可能收到我的错误的人,只需从您的计算机中删除 scapy 并重新启动它并安装最新的 scapy 版本。

相关内容