2

我试图了解IN_ADDR中的 S_un 。这是我的 IP 为 127.0.0.1 时的输出:

输出

有关类型的信息:

S_un_b
An IPv4 address formatted as four u_chars.
S_un_w
An IPv4 address formatted as two u_shorts.
S_addr
An IPv4 address formatted as a u_long.

我不明白 S_un_w 和 S_addr 是如何构建的。S_un_b 是逻辑,我的 IP 地址中的每个八位字节都转换为无符号字符。但是 2 条未签名的短裤和未签名的长版如何?还是他们只是在这些变量中复制了 127001 ?

4

1 回答 1

3

它只是一个联合,因此它以三种不同的表示形式显示相同的数据。另一种看待它的方法是将 4 字节整数 (S_addr) 视为十六进制值(并记住 0x7f = 127):

16777343 = 0x100007F  ==> 01 | 00 | 00 | 7f

它是小端格式。

于 2013-01-09T17:16:18.613 回答