简单验证IPv6的PHP代码
<?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})?::(?:[a-f0-9]{1,4}:){3} | (?:(?:[a-f0-9]{1,4}:){0,2}[a-f0-9]{1,4})?::(?:[a-f0-9]{1,4}:){2} | (?:(?:[a-f0-9]{1,4}:){0,3}[a-f0-9]{1,4})?::[a-f0-9]{1,4}: | (?:(?:[a-f0-9]{1,4}:){0,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,4}:){0,5}[a-f0-9]{1,4})?::[a-f0-9]{1,4} | (?:(?:[a-f0-9]{1,4}:){0,6}[a-f0-9]{1,4})?:: ) )/Z/ix', $IP); } $IP1 = "FEDC:BA98:7654:4210:FEDC:BA98:7654:3210"; $a = 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})?::(?:[a-f0-9]{1,4}:){3} | (?:(?:[a-f0-9]{1,4}:){0,2}[a-f0-9]{1,4})?::(?:[a-f0-9]{1,4}:){2} | (?:(?:[a-f0-9]{1,4}:){0,3}[a-f0-9]{1,4})?::[a-f0-9]{1,4}: | (?:(?:[a-f0-9]{1,4}:){0,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,4}:){0,5}[a-f0-9]{1,4})?::[a-f0-9]{1,4} | (?:(?:[a-f0-9]{1,4}:){0,6}[a-f0-9]{1,4})?:: ) )/Z/ix', $IP1); echo $a; ?>
输出0,表示不是IPv6地址
输出1,表示是IPv6地址
本文链接:http://www.phprm.com/code/f22cac2f54caa1d005c0b2664bd3ebab.html
收藏随意^^请保留教程地址.