hi,欢迎访问本站!
当前位置: 首页编程开发正文

php将IP地址转为十进制的方法

墨初 编程开发 224阅读

在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() 函数!

声明:无特别说明,转载请标明本文来源!
相关推荐