从DNS获取IP而不使用gethostbyname?

时间:2010-11-29 16:10:30

标签: php sockets dns

就超时而言,PHP的gethostbyname()函数似乎不可配置。我想将DNS请求限制在1秒或更短时间,因为它再次显示问题,应该被忽略。

那么,有没有办法使用套接字或cURL进行DNS查询?我能够使用保存服务器资源的PHP流来发出SMTP请求,因此我希望对DNS查询也这样做。

1 个答案:

答案 0 :(得分:4)

PHP article上的评论有一些设置/包括超时的选项:

<?php
function getAddrByHost($host, $timeout = 3) {
   $query = `nslookup -timeout=$timeout -retry=1 $host`;
   if(preg_match('/\nAddress: (.*)\n/', $query, $matches))
      return trim($matches[1]);
   return $host;
}
?>

http://www.php.net/manual/en/function.gethostbyname.php#92870