python 2.6のモジュールscapyをインストールすると、このモジュールをインポートすると、次の警告が表示されます。
警告:レイヤーipsecをインポートできません: 'モジュール'オブジェクトに属性 'IPPROTO_AH'がありません
ソケット属性を調べましたが、「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)
どうすればこれを修正できますか?
私はそれを持っていると思います...それはきれいな解決策ではありませんが、それはトリックを行います...私は他の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
_
コメントの1つで述べたように、私はPython 2.7.10をさまざまな[〜#〜] os [〜#〜] es(Lnx、Sol、[〜#〜] aix [〜#〜]、[〜#〜] hpux [〜#〜]、[〜#〜 ] osx [〜#〜])と値は一貫しているようですが、Winでは存在しません。[〜#〜] ms [〜#〜]のように削除されましたWinSock2.hから(VStudio)2005と2010の間。