PHP 判断指定IP是否在某个网段内,获取网段定义的IP范围
/**
* 判断IP是否在某个网络内
* @param $ip
* @param $network
* @return bool
*/
public static function ipInNetwork($ip, $network)
{
$ip = (double) (sprintf("%u", ip2long($ip)));
$s = explode('/', $network);
$network_mark = (pow(2, 32)-1) ^ (pow(2, 32-$s[1]) - 1);
$network_len = pow(2, 32 - $s[1]);
$network_start = (double) (sprintf("%u", ip2long($s[0])));
$network_start = ($network_mark & $network_start) + 1;
$network_end = $network_start + $network_len - 3;
if ($ip >= $network_start && $ip <= $network_end)
{
return true;
}
return false;
}
版权属于:Joyber
本文链接:https://blog.qqvbc.com/default/551.html
转载时须注明出处及本声明