yos*_*ran 5 python sockets ipsec scapy
我为python 2.6安装了模块scapy,当我导入这个模块时,我得到了这个警告:
警告:无法导入图层ipsec:'module'对象没有属性'IPPROTO_AH'
我看了socket属性,我没有找到'IPPROTO_AH'属性另外,我试图编辑模块ipsec.py并找到用其他东西替换IPPROTO_AH的方法然后我得到警告与IPPROTO_ESP!
我尝试在ipsec.py中编辑行,例如:
overload_fields = {
IP: {'proto': IPTest},
IPv6: {'nh': IPTest},
IPv6ExtHdrHopByHop: {'nh': socket.IPPROTO_AH},
IPv6ExtHdrDestOpt: {'nh': socket.IPPROTO_AH},
IPv6ExtHdrRouting: {'nh': socket.IPPROTO_AH},}
bind_layers(IP, AH, proto=socket.IPPROTO_AH)
bind_layers(IPv6, AH, nh=socket.IPPROTO_AH)
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题 ?
我想我拥有它...它不是一个干净的解决方案,但它会做到这一点......我已经在其他scapy文件中看到过它...
你需要做的就是编辑ipsec.py并查找该行import socket 就在它之下,添加这些条件:
if not hasattr(socket, "IPPROTO_ESP"):
socket.IPPROTO_ESP = 50
if not hasattr(socket, "IPPROTO_AH"):
socket.IPPROTO_AH = 51
Run Code Online (Sandbox Code Playgroud)
正如我在其中一篇评论中提到的,我在各种操作系统(Lnx,Sol,AIX,HPUX,OSX)上使用Python 2.7.10进行了测试,并且值似乎是一致的,而在Win上它们并不存在.好像MS在(VStudio)2005和2010之间从WinSock2.h中删除了它们.
| 归档时间: |
|
| 查看次数: |
23321 次 |
| 最近记录: |