PHP函数ip2long()实现IP转换成整型时出现负数的解决方法

发布时间:2019-10-29编辑:脚本学堂
本文介绍下,php的函数ip2long()将IP转换成整型时出现负数问题的解决方法,有需要的朋友参考下。

php编程中,将IP转换成整型的函数ip2long()容易出现一个问题:在IP比较大的情况下,会变成负数。

例如:
 

复制代码 代码示例:
<?php
$ip = "192.168.1.2";
$ip_n = ip2long($ip);
echo $ip_n; //得到 -1062731518
?>

原因:
IP转换成的整型值太大超出了整型的范围,所以变成负数。

需要做如下的修改,修改为$ip_n = bindec(decbin(ip2long($ip)))即可得到无符号的整型数。

例如:
 

复制代码 代码示例:
<?php
$ip = "192.168.1.2";
$ip_n = bindec(decbin(ip2long($ip)));
//by www.jb200.com
echo $ip_n; //得到 3232235778
?>