使用PHP检查域是否可用?

时间:2012-01-01 14:13:20

标签: php

如果我有www.example.com这样的域名,我想检查是否可以使用DNS记录(而不是whois)...

是否可以使用PHP执行此操作?

6 个答案:

答案 0 :(得分:34)

您可以使用checkdnsrr或gethostbyname:

文档:

http://www.php.net/checkdnsrr

http://www.php.net/gethostbyname

checkdnsrr示例:

<?php
 if ( checkdnsrr('example.com.', 'ANY') ) {
  echo "DNS Record found";
 }
 else {
  echo "NO DNS Record found";
 }
?>

示例gethostbyname:

<?php
 $domain = 'example.com';
 if ( gethostbyname($domain) != $domain ) {
  echo "DNS Record found";
 }
 else {
  echo "NO DNS Record found";
 }
?>

答案 1 :(得分:2)

这取决于您的意思&#34;可用。&#34;如果您的意思是可以注册,则无法仅根据DNS信息进行确定。必须使用whois系统。一种简单的测试方法是获取未使用的域名并将名称服务器设置为无效的名称。 DNS将无法使用,但该域仍无法注册。我刚刚测试了checkdnsrr(),gethostbyname()和dns_get_record()的建议。 All表明没有为无法注册的域返回DNS。

以下问题提供了更多详细信息: Checking if a domain name is registered

答案 2 :(得分:1)

CertainlyThis是可用域的结果。

答案 3 :(得分:0)

答案 4 :(得分:0)

我应该选择这个包Domain-Availability它支持很多顶级域名并以面向对象的方式编写。

答案 5 :(得分:0)

所有答案都建议使用一些PHP库。 vanilla PHP(版本5至7)中有一个功能,可获取特定域的DNS记录。

使用以下 PHP

sizeof(dns_get_record("example.com"))

您将获得一个与DNS记录数相对应的INT。因此,请考虑类似的事情:

if (sizeof(dns_get_record("example.com")) > 0) echo "Domain has DNS records";
else echo "Domain does not have any DNS records";

Documentation