Home  >  Article  >  php教程  >  PHP IP地址函数ip2long(),long2ip()

PHP IP地址函数ip2long(),long2ip()

WBOY
WBOYOriginal
2016-06-06 19:41:59945browse

先看看下边这段PHP代码。这段使用ip2long函数,对同一个IP进行转换。当然,也有人认为58.99.011.1和058.99.011.1算不上合法的 IP,那就Return,此文对你没有帮助。 为什么要使用带前导零的ip:为了在数据库中查询,这个可以在IP库中定位到ip所对应的位置信息

先看看下边这段PHP代码。这段使用ip2long函数,对同一个IP进行转换。当然,也有人认为58.99.011.1和058.99.011.1算不上合法的IP,那就Return,此文对你没有帮助。

为什么要使用带前导零的ip:为了在数据库中查询,这个可以在IP库中定位到ip所对应的位置信息。虽然没有整型的IP查询效率高,但毕竟直观啊。

php  

echo ip2long(58.99.11.1),"
";   //输出是 979569409 
 

echo ip2long(58.99.011.1),"
";  //输出是 979568897 
 

echo ip2long(058.99.11.1),"
";  //输出是空 
 

?>  

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转换的结果都不正确。

解决办法,使用写自己的函数:()

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;  

}

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn