PHP的ip2long有bug,请慎用
转自:http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2009/0927/3349.html
先看看下边这段PHP代码。这段使用ip2long函数,对同一个IP进行转换。当然,也有人认为58.99.011.1和058.99.011.1算不上合法的
IP,那就Return,此文对你没有帮助。
为什么要使用带前导零的ip:为了在数据库中查询,这个可以在IP库中定位到ip所对应的位置信息。虽然没有整型的IP查询效率高,但毕竟直观啊。
1 | echo ip2long('58.99.11.1'),"<br/>"; //输出是 979569409 |
在PHP 4.x,5.x中, 有前导零的ip转换的结果都不正确。
解决办法,使用写自己的函数:
1 | function myip2long($ip){ |