ip2long出现负数的解决办法

发布于 2016-08-09 作者 [重庆SEO]

更新于 2016-08-30

解决办法:

<?php sprintf("%u\n", ip2long($ip));

出现负数原因及处理方法

当ip地址比较大时,ip2long会出现负数:

原因说明:

IPv4使用无符号32位地址,因此最多有2的32次方减1(4294967295)个地址。书写用4个小数点分开的10进制数。
记为A.B.C.D,例如:192.168.100.100。

IPv4地址每个10进制数都是无符号的字节,范围在0~255,将IPv4地址转为无符号数,其实就是将每个10进制数放在对应的8位上,组成一个4字节的无符号整型。192.168.100.100,192,168在高8位100,100在低8位。

其他解决办法和参考资料请查看下面的文档