次の* nixコマンドは、hexdumpコマンドへのIPとポート(127.0.0.1:80)の16進表記をパイプします。UNIXヘキサダンプのエンディアン
-eフラグを使用すると、入力を解析できます。この例では、IPの最初の3オクテットを符号なし小数点以下にパーズしています。最後のオクテットも符号なし10進数に解析されますが、その後にコロンが続きます。最後に - 問題がどこにあるのか - ポートの2バイトは、改行が続く単一の符号なし10進数として解析されます。
このコマンドを実行しているシステムのエンディアンに応じて、結果は異なります。ビッグエンディアンシステムはポート80を正しく表示します。リトルエンディアンシステムではポート20480が表示されます。
-eで任意のフォーマット指定を許可しながらエンディアンを認識するようにhexdumpを操作する方法はありますか?
質問をしているので、プラットフォームがリトルエンディアンの場合、最後の2バイトを入れ替えて入力を準備する必要はないと思いますか? –
バイトスワップが必要なように見えますか? – shrizza