php将IP地址转为十进制的方法
墨初 编程开发 730阅读
在php脚本中有很多地方会用到IP地址,但这个ip地址在某些逻辑的处理中是不方便的。这里我们就需要将ip地址转为十进制,下面是php脚本中将ip地址转为十进制的方法。
php IP转为十进制的方法
方法1:
/**
* # IP地址转十进制的方法
* @param string $ip IP地址
*
* @return string
* @host https://www.73so.com
*/
function ipToLong($ip = null)
{
$ip = ($ip == null) ? $_SERVER['REMOTE_ADDR'] : $ip;
$ip = explode('.', $ip);
$ip = array_reverse($ip);
$r = 0;
for($i=0,$j=count($ip); $i<$j; $i++){
$r += $ip[$i] * pow(256, $i);
}
$r = sprintf("%u", $r);
return $r;
}
//下面是函数的调用方法
echo ipToLong('192.168.0.1');
// 3232235521方法2:
/**
* # IP地址转十进制的方法
* @param string $ip IP地址
*
* @return string
* @host https://www.73so.com
*/
function ipToLong($ip = null)
{
$ip = ($ip == null) ? $_SERVER['REMOTE_ADDR'] : $ip;
$ip = explode('.',$ip);
$r = ($ip[0] << 24) | ($ip[1] << 16) | ($ip[2] << 8) | $ip[3];
if($r < 0) $r += 4294967296;
return $r ;
}
echo ipToLong('192.168.0.1');
// 3232235521方法3:
上面两个php中IP转十进制的方法都是自定义的函数,当然php本身也提供了一个IP转十进制的函数ip2long()
echo ip2long('192.168.0.1');
// 3232235521以上就是关于使用php脚本代码将IP地址转为十进制的方法,个人推荐使用php自带的ip2long() 函数!