php将IP地址转为十进制的方法
墨初 编程开发 463阅读
在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() 函数!