我在寫一個簡單的表單來檢查.com域是否可用。我使用下面的代碼評估了3種方法(@dns_get_record,gethostbyname()和checkdnsrr()),但是我得到了所有不可用的gethostbyname()和checkdnsrr()條目,您可以如果刷新幾次,請參閱@http://suggestmyname.com/nonwp/arraypush.php。在我的本地測試服務器上運行時,我沒有遇到這個問題,任何人都知道爲什麼不一致?並不是所有的域都在我的遠程服務器上進行檢查,但是在我的本地測試服務器上。PHP:不一致的結果gethostbyname()和checkdnsrr()
$sdomains = array();
array_push($sdomains, 'etc.com');
function domainAvailable1($domain){
$results = @dns_get_record($domain, DNS_ANY);
return empty($results);
}
function domainAvailable2($domain){
return gethostbyname($domain) == $domain;
}
function domainAvailable3($domain){
return !checkdnsrr($domain, 'ANY');
}
echo '<table><tr><td>@dns_get_record</td><td>gethostbyname</td><td>checkdnsrr</td></tr>';
foreach($sdomains as $sdomain){
if (domainAvailable1($sdomain) == true){
echo '<tr><td bgcolor=green>' . $sdomain . ' is available!</td>';
} else {
echo '<tr><td bgcolor=red>' . $sdomain . ' is NOT available.</td>';
}
if (domainAvailable2($sdomain) == true){
echo '<td bgcolor=green>' . $sdomain . ' is available!</td>';
} else {
echo '<td bgcolor=red>' . $sdomain . ' is NOT available.</td>';
}
if (domainAvailable3($sdomain) == true){
echo '<td bgcolor=green>' . $sdomain . ' is available!</td></tr>';
} else {
echo '<td bgcolor=red>' . $sdomain . ' is NOT available.</td></tr>';
}
}
爲什麼使用'@'進行'dns_get_record()'調用? – zerkms
我正在按照建議和代碼@ http://w-shadow.com/blog/2011/01/04/how-to-quickly-check-domain-availability/ – Nick5a1
直到你確定它是什麼時才使用它是適用於 – zerkms