<?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");
?>
//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
对应二进制是32个1:11111111111111111111111111111111 选择二进制输入32个1:
然后转为十进制:也就是点十进制。
结果为:4294967295
php计算的结果:
[~]# php ip.php
3232235521
4294967295
3232235521
4294967295
说明这个长整形就是这样转的,呵呵。
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/3341/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
评论列表