Jyxo\Input\Validator\IsIpV6::isValid PHP Метод

isValid() публичный Метод

Validates a value.
public isValid ( mixed $value ) : boolean
$value mixed Input value
Результат boolean
    public function isValid($value) : bool
    {
        $pattern8bit = '(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])';
        $patternIpV4 = '(?:' . $pattern8bit . '(?:[.]' . $pattern8bit . '){3})';
        // a:b:c:d:e:f:g:h
        $patternIpV6Variant8Hex = '(?:(?:[0-9a-f]{1,4}:){7}[0-9a-f]{1,4})';
        // Compressed a::b
        $patternIpV6VariantCompressedHex = '(?:(?:(?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?)::(?:(?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?))';
        // IPv4 mapped to IPv6 a:b:c:d:e:f:w.x.y.z
        $patternIpV6VariantHex4Dec = '(?:(?:(?:[0-9a-f]{1,4}:){6})' . $patternIpV4 . ')';
        // Compressed IPv4 mapped to IPv6 a::b:w.x.y.z
        $patternIpV6VariantCompressedHex4Dec = '(?:(?:(?:[0-9a-f]{1,4}(?::[0-9a-f]{1,4})*)?)::(?:(?:[0-9a-f]{1,4}:)*)' . $patternIpV4 . ')';
        $patternIpV6 = '(?:' . $patternIpV6Variant8Hex . '|' . $patternIpV6VariantCompressedHex . '|' . $patternIpV6VariantHex4Dec . '|' . $patternIpV6VariantCompressedHex4Dec . ')';
        if (!preg_match('~^' . $patternIpV6 . '$~', (string) $value)) {
            return false;
        }
        return true;
    }
IsIpV6