代码如下:PHP
// literally from the ABNF in rfc3986 (thanks to 'WCP')
function validateIPv6($IP)
{
return preg_match('/\A
(?:
(?:
(?:[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})?::
)
(?:
[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}
(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
) (?:
(?:(?:[a-f0-9]{1,5}[a-f0-9]{1,4} (?:(?:[a-f0-9]{1,6}[a-f0-9]{1,4})?::
)
)\Z/ix',
$IP
);
}
?>