PHP IP地址和int相互转换

/**
* ipint
* @param $ip
* @return string
*/
function ip2int($ip) {
$ips = explode('.', $ip);
return $ips[0] * 2 ** 24 + $ips[1] * 2 ** 16 + $ips[2] * 2 ** 8 + $ips[3];
}

/**
* intip
* @param $int
* @return string
*/
function int2ip($int) {
$ip1 = $int;
$ip1 = $ip1 >> 24;
$ip1 = $ip1 & (2 ** 8 - 1);
$ip2 = $int;
$ip2 = $ip2 >> 16;
$ip2 = $ip2 & (2 ** 8 - 1);
$ip3 = $int;
$ip3 = $ip3 >> 8;
$ip3 = $ip3 & (2 ** 8 - 1);
$ip4 = $int;
$ip4 = $ip4 >> 0;
$ip4 = $ip4 & (2 ** 8 - 1);
return sprintf("%s.%s.%s.%s", $ip1, $ip2, $ip3, $ip4);
}