我正试图在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地址中的每个八位字节都转换为unsigned char。但是2个不带状态的短裤和未签名的长版如何?或者他们只是在这些变量中记录了127001?
答案 0 :(得分:3)
它只是一个联合,因此它以三种不同的表示方式显示相同的数据。另一种看待它的方法是将4字节整数(S_addr)视为十六进制值(并记住0x7f = 127):
16777343 = 0x100007F ==> 01 | 00 | 00 | 7f
它采用小端格式。