validhostname.php 529 B

123456789101112131415161718
  1. <?php
  2. function validhostname($hostname,$pattmods='') {
  3. preg_replace('/./u','.',$hostname,-1,$c);
  4. (strlen($hostname)>$c) ? $multibyte=true : $multibyte=false;
  5. if ($multibyte) $hostname=idn_to_ascii($hostname,IDNA_DEFAULT,INTL_IDNA_VARIANT_UTS46);
  6. if (strlen($hostname)>253)
  7. return false;
  8. $labs=explode('.',$hostname);
  9. foreach ($labs as $lab) {
  10. $len=strlen($lab);
  11. if ($len==0 || $len>63)
  12. return false;
  13. if (preg_match('#^[a-z0-9]([a-z0-9-]*[a-z0-9])?$#i'.$pattmods,$lab)!==1)
  14. return false;
  15. }
  16. return true;
  17. }
  18. ?>