ここ数日間、生のソケットを使用し、Python でいくつかのデモ プログラムを作成しました。これをここに記録します。
まず、単純なスニファー プログラムを見てみましょう。
ここでは、生のソケットを直接使用してデータを受信し、直接印刷します。これはほんの数行のコードなので、説明する必要はありません。理解できない場合は、Google で調べてください。
IP データ パケットを取得したら、次のステップは IP ヘッダーを解析することです。その前に、RFC (RFC791: http://www.ietf.org/rfc/) で IP ヘッダーがどのように定義されているかを見てみましょう。 rfc791 .txt ):
は、対応する画像です:
RFC と上の図から、IP パケット ヘッダーの各フィールドが占める桁数がわかります。これらの定義に基づいて IP パケット ヘッダーを解析し、対応するポリシーに従ってデータを処理できます。 。
これは、Python で実装された IP ヘッダーを解析するコードです (笑、これはデモのコードです。最初の 20 バイトのみが解析されます):
if len(packet) == 0:
sck.close()
else:
#print str(packet)
mapIpTmp = decodeIpHeader(packet)
for k,v in mapIpTmp.items():
print k,"t:t",v
print ""