- <?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
- );
- }
- ?>
- 详细出处参考:http://www.jb51.net/article/22141.htm
转载于:https://blog.51cto.com/luoine/306567