IPv4 が問題であり、std::istream から IP および ICMP ヘッダーを抽出したい場合、最初に最初の 20 バイトを取得し、IPv4 ヘッダーで提供されるヘッダーの長さが 20 バイトより大きいかどうかを確認して、任意のオプション。次のバイトは ICMP パケットです。IPv4 ヘッダー内で保持されるヘッダー長の値を使用して、IP ヘッダーの予想サイズを確認できます。
しかし、IPv6 ヘッダーの正確なサイズを取得する方法は? ヘッダー拡張のサイズと ICMP などのより高いレベルのデータを含む IPv6 ヘッダー内のペイロード値があります。std::istream で ICMPv6 ヘッダーが開始する位置を知るために、ヘッダー拡張を含むが上位レベルのデータを含まない IPv6 ヘッダーのサイズを知る必要があります。
ありがとうございました!