小编shr*_*zza的帖子

Unix hexdump中的字节序

以下*nix命令将一个IP和端口(127.0.0.1:80)的十六进制表示形式管道到hexdump命令中.

printf "\x7F\x00\x00\x01\x00\x50" | hexdump -e '3/1 "%u." /1 "%u:" 1/2 "%u" "\n"'
Run Code Online (Sandbox Code Playgroud)

-e标志允许任意格式解析输入.在这种情况下,我们将IP的前三个八位字节解析为无符号小数,后跟一个点.最后的八位字节也被解析为无符号小数,但后面跟一个冒号.最后 - 这就是问题所在 - 端口的2个字节被解析为单个无符号小数后跟换行符.

根据执行此命令的系统的字节顺序,结果会有所不同.一个大端系统将正确显示端口80; 而小端系统将显示端口20480.

有没有办法操纵hexdump以了解字节顺序,同时仍允许通过-e进行任意格式规范?

unix hexdump endianness

7
推荐指数
1
解决办法
4766
查看次数

标签 统计

endianness ×1

hexdump ×1

unix ×1