PHP的IPv6验证正则表达式(转)

  1. <?php
  2. // literally from the ABNF in rfc3986 (thanks to 'WCP')
  3. function validateIPv6($IP)
  4. {
  5. return preg_match('/\A
  6. (?:
  7. (?:
  8. (?:[a-f0-9]{1,4}:){6}
  9. ::(?:[a-f0-9]{1,4}:){5}
  10. (?:[a-f0-9]{1,4})?::(?:[a-f0-9]{1,4}:){4}
  11. (?:(?:[a-f0-9]{1,4}:){0,1}[a-f0-9]{1,4})?::(?:[a-f0-9]{1,4}:){3}
  12. (?:(?:[a-f0-9]{1,4}:){0,2}[a-f0-9]{1,4})?::(?:[a-f0-9]{1,4}:){2}
  13. (?:(?:[a-f0-9]{1,4}:){0,3}[a-f0-9]{1,4})?::[a-f0-9]{1,4}:
  14. (?:(?:[a-f0-9]{1,4}:){0,4}[a-f0-9]{1,4})?::
  15. )
  16. (?:
  17. [a-f0-9]{1,4}:[a-f0-9]{1,4}
  18. (?:(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}
  19. (?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
  20. )
  21. (?:
  22. (?:(?:[a-f0-9]{1,4}:){0,5}[a-f0-9]{1,4})?::[a-f0-9]{1,4}
  23. (?:(?:[a-f0-9]{1,4}:){0,6}[a-f0-9]{1,4})?::
  24. )
  25. )\Z/ix',
  26. $IP
  27. );
  28. }
  29. ?>
  30. 详细出处参考:http://www.jb51.net/article/22141.htm
 » 本站地址:http://www.gomoth.com

标签: