IP地址基础知识及php检查ip地址

为什么必须有一个子网掩码?因为: 
1 )当配置 IP 时,所有计算机都必须填写子网掩码 
2 )我们必须在我们的网络中设置一些逻辑边界 
3 )我们必须至少输入所使用 IP 类的默认子网掩码

某IP地址为192.168.5.0/24,这是一种基于CIDR划分的IP地址,最后的/24表示前24位是网络号,后8位是主机号。同时也表示掩码为24位,即子网掩码为255.255.255.0,使用2进制排列就是11111111.11111111.11111111.00000000,根据掩码算术,使用IP地址与掩码逻辑与,即为网络地址

https://blog.csdn.net/apanious/article/details/51014374

PHP 高级过滤器

$ip = "2001:0db8:85a3:08d3:1319:8a2e:0370:7334";

if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) {
    echo("$ip 是一个 IPv6 地址");
} else {
    echo("$ip 不是一个 IPv6 地址");
}

  https://www.w3cschool.cn/php/ar6jqfl6.html

/**
     * Validates an IPv6 address
     *
     * @param  string $value Value to check against
     * @return boolean True when $value is a valid ipv6 address
     *                 False otherwise
     */
    protected function _validateIPv6($value) {
        if (strlen($value) < 3) {
            return $value == '::';
        }

        if (strpos($value, '.')) {
            $lastcolon = strrpos($value, ':');
            if (!($lastcolon && $this->_validateIPv4(substr($value, $lastcolon + 1)))) {
                return false;
            }

            $value = substr($value, 0, $lastcolon) . ':0:0';
        }

        if (strpos($value, '::') === false) {
            return preg_match('/\A(?:[a-f0-9]{1,4}:){7}[a-f0-9]{1,4}\z/i', $value);
        }

        $colonCount = substr_count($value, ':');
        if ($colonCount < 8) {
            return preg_match('/\A(?::|(?:[a-f0-9]{1,4}:)+):(?:(?:[a-f0-9]{1,4}:)*[a-f0-9]{1,4})?\z/i', $value);
        }

        // special case with ending or starting double colon
        if ($colonCount == 8) {
            return preg_match('/\A(?:::)?(?:[a-f0-9]{1,4}:){6}[a-f0-9]{1,4}(?:::)?\z/i', $value);
        }

        return false;
    }

  

/**
     * Validates an IPv4 address
     *
     * @param string $value
     */
    protected function _validateIPv4($value) {
        $ip2long = ip2long($value);
        if($ip2long === false) {
            return false;
        }

        return $value == long2ip($ip2long);
    }

  

猜你喜欢

转载自www.cnblogs.com/songgj/p/8807636.html