成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼
请慎用PHP的ip2long有bug
先看看下边这段PHP代码。这段运用ip2long函数,对统一个IP进行转换。当然,也有人以为58.99.011.1和058.99.011.1算不上正当的
IP,那就Return,此文对你没有协助。
为什么要运用带前导零的ip:为了在数据库中查询,这个可以在IP库中定位到ip所对应的地位信息。固然没有整型的IP查询效率高,但究竟直观啊。
code:
.jpg)
以下为援用的内容:
<?php
echo ip2long('58.99.11.1'),"
"; //输出是 979569409
echo ip2long('58.99.011.1'),"
"; //输出是 979568897
echo ip2long('058.99.11.1'),"
"; //输出是空
?>
<?php
echo ip2long('58.99.11.1'),"
"; //输出是 979569409
echo ip2long('58.99.011.1'),"
"; //输出是 979568897
echo ip2long('058.99.11.1'),"
"; //输出是空
?>
在PHP 4.x,5.x中, 有前导零的ip转换的后果都不准确。
处理方法,运用写本人的函数:
code:
以下为援用的内容:
function myip2long($ip){
$ip_arr = split('.',$ip);
$iplong = (16777216 * intval($ip_arr[0])) + (65536 * intval($ip_arr[1])) + (256 * intval($ip_arr[2])) + intval($ip_arr[3]);
return $iplong;
}

