Dns 域名通过“存在”;“挖掘”;

Dns 域名通过“存在”;“挖掘”;,dns,whois,dig,Dns,Whois,Dig,是否可以通过检查“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

是否可以通过检查“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
0 DNS\R\n错误
1 DNS\u R\u FORMERR
2 DNS\u R\u服务失败
3域名
4 DNS\u R\u NOTIMP
5个域名被拒绝
6 DNS\u R\u域
7 DNS\u R\u YXRRSET
8 DNS\u R\u nxrset
9 DNS\u R\u NOTAUTH
10 DNS\u R\u NOTZONE
16个域名服务器
#11没有宏
#12没有宏
#13没有宏
#14没有宏
#15没有宏
在我看来,NOERROR&SERVFAIL意味着主机名存在(尽管这并不意味着有ip链接到它)。NXDOMAIN将意味着它绝对不存在

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

有没有人能对我的假设和其他宏进行解释


谢谢

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


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

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

$ dig asdfasdfasdfxvyxv123.de.com A +short 
91.213.214.122

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

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

只需询问域的SOA记录:

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

$ dig lmksjdflksd.eu +short soa
不返回任何内容

您需要定义“存在”。你是说“注册”吗?如果是,则为否,因为您可以注册一个域(从而使其对任何其他人都不可用),但根本不需要在DNS中发布它。否则,您只需要查询注册表权威名称服务器,如果他们没有回复域的NXDOMAIN,则表示它存在,因为它是由注册表权威名称服务器委派的。至少这对TLD/后缀下的域是有效的,但由于可能存在通配符,因此可能无法进一步工作。