LinuxでPythonでrawソケットを開こうとしています。Python raw socket:プロトコルがサポートされていません
私の簡単なコード:
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
s.bind((HOST, 5454))
そして、私はこのエラーを得た:ところで
[ERROR] Protocol not supported
を、私は、Linux 12.04下のpython 2.7.3を使用しています、と私は実行するには、rootを使用コード。
誰か手掛かりがありますか?
アップデート:私のsoultion、dstrombergによって与えられた ソリューションは正しいです。すべてのパケットが必要な場合は、彼のソリューションを使用してください。 しかし、別の組み合わせがあります。
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
もあります。この場合
、あなたはそれにIPおよびTCPヘッダを持つすべてのTCPパケットを受信します。 dstrombergのソリューションを使用している場合は、イーサネットヘッダーも表示されます。だから、それはあなたがあなたのパケットが~~
ルートとして、それを実行しているときFYI私は同じエラーを取得します。 – pts
'AF_INET'の代わりに' AF_UNIX'を試してください。 – Anthony
@Anthony、それは仕事のようです。私は新しいエラーを得ました。私はいくつかのテストを行い、それが動作するかどうかを見てみましょう。アドバイスありがとう~~~ –