FreeABC
记忆重叠

php-常用工具-判断IP是否在某个网络内

/**
* 判断IP是否在某个网络内
* @param $ip 192.168.0.128
* @param $network 192.168.0.1/24
* @return bool
*/
function ip_in_network($ip, $network)
{
$ip = (double) (sprintf("%u", ip2long($ip)));
$s = explode('/', $network);
// p($s);die;
$network_start = (double) (sprintf("%u", ip2long($s[0])));
$network_len = pow(2, 32 - $s[1]);
$network_end = $network_start + $network_len - 1;
if ($ip >= $network_start && $ip <= $network_end)
{
return true;
}
return false;
}
/** * 判断IP是否在某个网络内 * @param $ip 192.168.0.128 * @param $network 192.168.0.1/24 * @return bool */ function ip_in_network($ip, $network) { $ip = (double) (sprintf("%u", ip2long($ip))); $s = explode('/', $network); // p($s);die; $network_start = (double) (sprintf("%u", ip2long($s[0]))); $network_len = pow(2, 32 - $s[1]); $network_end = $network_start + $network_len - 1; if ($ip >= $network_start && $ip <= $network_end) { return true; } return false; }
/**
 * 判断IP是否在某个网络内 
 * @param $ip   192.168.0.128
 * @param $network 192.168.0.1/24
 * @return bool
*/

function ip_in_network($ip, $network)
{
    $ip = (double) (sprintf("%u", ip2long($ip)));
    $s = explode('/', $network);
    // p($s);die;
    $network_start = (double) (sprintf("%u", ip2long($s[0])));
    $network_len = pow(2, 32 - $s[1]);
    $network_end = $network_start + $network_len - 1;

    if ($ip >= $network_start && $ip <= $network_end)
    {
        return true;
    }
    return false;
}

 

未经允许不得转载:Free-Abc智能 » php-常用工具-判断IP是否在某个网络内
分享到: 更多 (0)