1

.comドメインが利用可能かどうかを確認するための簡単なフォームを作成しています。以下のコードを使用して、一連のテストドメイン名について3つのメソッド(@ dns_get_record、gethostbyname()、checkdnsrr())を評価していますが、gethostbyname()とcheckdnsrr()の利用できないエントリをすべて取得しています。数回更新する場合は、 @ http://suggestmyname.com/nonwp/arraypush.phpを参照してください。ローカルのテストサーバーで実行しているときにこの問題は発生しません。不整合の理由を誰かが知っていますか?また、すべてのドメインがリモートサーバーでチェックされているわけではありませんが、ローカルテストサーバーでチェックされています。

$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>';
            }
}
4

1 に答える 1

1

これらの機能のいずれかを使用する(基本的にはDNSを使用する)ことが、ドメインが使用可能かどうかを判断するための信頼できる方法であるかどうかはわかりません。

DNSレコードがまったくないドメインをたくさん登録しているので、どうしても解決できませんが、もちろんドメインは取得されます。

ほとんどのドメインにはいくつかのDNSレコードがありますが、ない場合もあります。たとえばmymoney.com、スクリプトのドメインは、3つのチェックすべてで利用可能であると言っていますが、ドメインは登録されています。

最善の策は、WHOISを使用して特定のTLDの適切なレジストラにクエリを実行し、WHOISを使用して可用性を判断することです。DNSを使おうとすると、誤検知などの問題が発生すると思います。

于 2012-06-04T23:56:31.217 に答える