IP 转整数

IPv4 地址和 32 位整数互转。高位在前、低位在前两种字节序一起给出。

高位在前时,IP 的第一段占整数的最高 8 位。低位在前时,第一段占最低 8 位。

怎么换

只处理 IPv4,结果是 32 位整数。高位在前是网络序:四段数字从左到右放进整数的高位到低位,和常见的 ip2long、INET_ATON 一致。低位在前把这四个字节倒过来,第一段落在最低 8 位。

无符号从 0 到 4294967295。有符号把最高位当作符号,所以 255.255.255.255 按高位在前是 -1。第一段大于等于 128 时,高位在前的有符号数也是负数,例如 192.168.1.1。整数转 IP 时,负数按有符号 32 位理解,0x 开头按十六进制理解。

四段都相同的地址,例如 8.8.8.8,两种字节序得到同一个整数。前导零按十进制读,192.168.001.001 就是 192.168.1.1。