5

是否可以通过检查“dig”的输出来检查域名的存在?在绑定源中,我发现了这些常量:

0 DNS_R_NOEROR
1 DNS_R_FORMERR
2 DNS_R_SERVFAIL
3 DNS_R_NXDOMAIN
4 DNS_R_NOTIMP
5 DNS_R_REFUSED
6 DNS_R_YXDOMAIN
7 DNS_R_YXRRSET
8 DNS_R_NXRRSET
9 DNS_R_NOTAUTH
10 DNS_R_NOTZONE
16 DNS_R_BADVERS

<RCODE 11>     # 11 has no macro
<RCODE 12>     # 12 has no macro
<RCODE 13>     # 13 has no macro
<RCODE 14>     # 14 has no macro
<RCODE 15>     # 15 has no macro

在我看来 NOERROR & SERVFAIL 意味着主机名存在(尽管它并不意味着 ip 链接到它)。NXDOMAIN 意味着它绝对不存在。

我不喜欢使用 whois,因为它很慢。dig 要快得多,因为我只需要确定主机名还不存在。

有人可以阐明我的假设和其他宏吗?

谢谢

4

3 回答 3

4

好吧,在某些情况下它可能会起作用,但在大多数情况下,您会看到不正确的结果 - 某些域已注册但在 TLD 名称服务器中没有记录。并且某些域配置了记录但未注册,因为某些注册中心配置了通配符域:

$ dig asdfasdfasdfxvyxv123.de.com A +short 
91.213.214.122

$ whois -h whois.centralnic.com asdfasdfasdfxvyxv123.de.com
DOMAIN NOT FOUND

whois 确实很慢 - 与/您的域提供商交谈,大多数注册机构提供更快的方法来检查域是否已注册(即 EPP 协议)

于 2011-08-01T08:16:23.343 回答
1

不,你不能。至少,Dig 可以告诉您该域是否有名称服务器记录,但即使响应是否定的,也不意味着该域可用。

唯一的方法是执行 WHOIS 查询。

于 2011-01-26T08:57:32.420 回答
0

只需询问域的 SOA 记录:

$ dig activcloud.eu +short soa
dns112.ovh.net. tech.ovh.net. 2018091203 86400 3600 3600000 300

尽管

$ dig lmksjdflksd.eu +short soa

什么都不返回

于 2018-09-13T08:24:29.513 回答