301_4@
PHP @H_
301_4@// literally from the ABNF in rfc3986 (thanks to 'WCP') @H_
301_4@function validateIPv6($IP) @H_
301_4@{ @H_
301_4@return preg_match('/\A @H_
301_4@(?: @H_
301_4@(?: @H_
301_4@(?:[a-f0-9]{1,4}:){6} ::(?:[a-f0-9]{1,4}:){5} (?:[a-f0-9]{1,4})?::(?:[a-f0-9]{1,4}:){4} (?:(?:[a-f0-9]{1,4}:){0,1}[a-f0-9]{1,4}:){3} (?:(?:[a-f0-9]{1,2}[a-f0-9]{1,4}:){2} (?:(?:[a-f0-9]{1,3}[a-f0-9]{1,4})?::[a-f0-9]{1,4}: (?:(?:[a-f0-9]{1,4}[a-f0-9]{1,4})?:: @H_
301_4@) @H_
301_4@(?: @H_
301_4@[a-f0-9]{1,4}:[a-f0-9]{1,4} (?:(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3} @H_
301_4@(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]) @H_
301_4@) (?: @H_
301_4@(?:(?:[a-f0-9]{1,5}[a-f0-9]{1,4} (?:(?:[a-f0-9]{1,6}[a-f0-9]{1,4})?:: @H_
301_4@) @H_
301_4@)\Z/ix',@H_
301_4@$IP @H_
301_4@); @H_
301_4@} @H_
301_4@?> @H_
301_4@