4
對於超時而言,PHP的gethostbyname()函數似乎不可配置。我想將DNS請求限制爲1秒或更少,因爲它們顯示出問題,應該忽略。從DNS獲取IP而不使用gethostbyname?
那麼,有沒有辦法使用套接字或cURL來進行DNS查詢呢?我能夠使用保存服務器資源的PHP流進行SMTP請求,所以我正在尋求與DNS查詢相同的操作。
對於超時而言,PHP的gethostbyname()函數似乎不可配置。我想將DNS請求限制爲1秒或更少,因爲它們顯示出問題,應該忽略。從DNS獲取IP而不使用gethostbyname?
那麼,有沒有辦法使用套接字或cURL來進行DNS查詢呢?我能夠使用保存服務器資源的PHP流進行SMTP請求,所以我正在尋求與DNS查詢相同的操作。
在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
@Xeoncross:這可能是你最好的選擇。否則,您可以查看RFC(http://www.faqs.org/rfcs/rfc1035.html)的「4.2」節,並瞭解如何發送自己的數據包。 – 2010-11-29 16:15:15