Deprecated: parse_url(): Passing null to parameter #1 ($url) of type string is deprecated in /www/wwwroot/blog_qqvbc_com/usr/plugins/Access/Access_Core.php on line 339

Deprecated: parse_url(): Passing null to parameter #1 ($url) of type string is deprecated in /www/wwwroot/blog_qqvbc_com/usr/plugins/Access/Access_Core.php on line 392

Deprecated: parse_url(): Passing null to parameter #1 ($url) of type string is deprecated in /www/wwwroot/blog_qqvbc_com/usr/plugins/Access/Access_Core.php on line 394
PHP 判断指定IP是否在某个网段内,获取网段定义的IP范围 - Joyber 的博客


    /**
     * 判断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;
    }

标签: none

添加新评论