我正在编写一个简单的表单来检查是否有可用的.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>';
}
}发布于 2012-06-05 07:56:31
我不确定使用这些功能中的任何一个(通常使用DNS )是否是确定域是否可用的可靠方法。
我有大量的域名注册,绝对没有DNS记录,所以他们不能以任何方式解析,但域名当然是采取。
虽然大多数域名都会有一些DNS记录,但也会有一些没有的情况。例如,脚本中的域mymoney.com表示它可以通过所有3次检查获得,但该域是注册的。
最好的办法是使用WHOIS查询给定TLD的相应注册商,并使用WHOIS确定可用性。我认为如果您尝试使用DNS,将会遇到误报或其他问题。
https://stackoverflow.com/questions/10889753
复制相似问题