把IP地址按整型存入数据库的转换的PHP程序

jackxiang 2010-7-29 13:15 | |

<?php
//IP转换成整数的函数

function IptoInt($ip)
{
    $ipa=explode(".",$ip);
    $ipn=$ipa[0]*16777216+$ipa[1]*65536+$ipa[2]*256+$ipa[3];
    return $ipn;
}

   // 整数还原成IP的函数

   function InttoIp($value)
   {
       $bin = decbin($value);
       $zeros = 32 - strlen($value);
       for($i=0;$i<$zeros;$i++)
       $bin = '0'.$bin;
       $arr = str_split($bin,8);
       $ip='';
       for($i=0;$i<count($arr);$i++){
         $ip .= bindec($arr[$i]).".";
         }
         $ip=substr($ip,0,strlen($ip)-1);
         return $ip;
    }

?>


<?php
   echo IptoInt("192.168.0.1");
   echo "\n";
echo IptoInt("255.255.255.255");
?>



比如这个:255.255.255.255这个,掏出windows计数器,运行:输入calc
对应二进制是32个1:11111111111111111111111111111111  选择二进制输入32个1:
然后转为十进制:也就是点十进制。
结果为:4294967295


php计算的结果:
[~]# php ip.php
3232235521
4294967295


说明这个长整形就是这样转的,呵呵。

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/3341/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]