就超时而言,PHP的gethostbyname()函数似乎不可配置。我想将DNS请求限制在1秒或更短时间,因为它再次显示问题,应该被忽略。
那么,有没有办法使用套接字或cURL进行DNS查询?我能够使用保存服务器资源的PHP流来发出SMTP请求,因此我希望对DNS查询也这样做。
答案 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