Scapy では、パケットを対応する ICMP 時間超過メッセージと手動で照合したいと考えています。
私は一致する必要があります:
- ICMP パケットの IP-in-ICMP フィールド
IP ヘッダーとデータ パケットの最初の 8 バイト ICMP パケットは問題ありません。
icmpPayload = str(icmpPacket[ICMP].ペイロード)
データ パケットの最初の 8 バイトについては、次のことを行う必要があります。
str(myPacket[IP].payload)[:8]
の IP ヘッダーだけを取得する方法がわかりませんmyPacket
。ここで行うことは、パケット全体のペイロードを最初の 8 バイトに置き換えることだけです。この検索と置換を何千ものパケットに適用すると、時間がかかりすぎる可能性があります。
strOfMyPacket = str(myPacket[IP])
strOfMyPacket.replace(str(myPacket[IP].payload),str(myPacket[IP].payload)[:8],1)
次のことを簡単に実行できる、より高速な方法はありますか?
partOfPayload = str(myPacket[IP].payload)[:8]
fullHeader = _______
stringToCompare = fullHeader + partOfPayload