先转二进制,左边补齐0,再右边补齐0,再转十进制计算
$ip = '0210.110.11.49';
function ipToInt($ip){
$iparr=explode('.',$ip);
$d=0;
foreach ($iparr as $key=>$value){
$t=decbin($value);
$t=str_pad($t,8,'0',STR_PAD_LEFT);
$t=str_pad($t,32-8*$key,'0',STR_PAD_RIGHT);
$d+=bindec($t);
}
return $d;
}
echo $ip.'<br />';
$ip_int = ipToInt($ip);
echo $ip_int.'<br />';
echo long2ip($ip_int);
$ip = '0210.110.11.49';
function ipToInt($ip){
$iparr = explode('.',$ip);
return (intval($iparr[0]<<24))|
(intval($iparr[1])<<16)|(intval($iparr[2])<<8)|
(intval($iparr[3]));//|按位或运算
}
echo $ip.'<br />';
$ip_int = ipToInt($ip);
echo $ip_int.'<br />';
echo long2ip($ip_int);
$ip = '0210.110.11.49';
function ipToInt($ip){
$iparr = explode('.',$ip);
$num = 0;
for($i=0;$i<count($iparr);$i++){
$num += intval($iparr[$i]) * pow(256,count($iparr)-($i+1));//pow() 函数返回 x 的 y 次方。
}
return $num;
}
echo $ip.'<br />';
$ip_int = ipToInt($ip);
echo $ip_int.'<br />';
echo long2ip($ip_int);
本文介绍了三种将IP地址转换为整数的方法:通过二进制转换并计算、使用按位或运算符以及利用数学计算。每种方法都详细展示了如何处理IP地址的每一部分,并最终将其转换为一个整数值。

3858

被折叠的 条评论
为什么被折叠?



