所谓的域名存活状态检测, 这个概念的意思, 就是通过那些技术手段, 去确认某一个域名在当前的时候, 到底是不是处在一个能够让人们进行解析工作的状态, 同时也处在一个能够让人们顺利访问到的生效状态。它的那个判断核心依据, 主要是看三个特别重要的指标。

第一个指标是去查查那个WHOIS注册信息, 看看这个东西是不是有效的。第二个指标是去看看DNS记录, 看看它是不是能够进行那种正常的解析操作。第三个指标是去发那个HTTP或HTTPS请求, 看看这些请求是不是能够达到对方那里去的。

下面我们要讲的那些方法, 它们既适用于单个域名进行的这种查询工作, 也适用于批量域名进行的那种巡检任务, 这两种场景它都是可以用的, 而且还可以选择单独地使用某一种方法,或者把这些方法组合起来一起执行。

WHOIS注册状态查询

我们可以向域名注册局或者注册商发出请求灵音心图, 这个具体的动作是用WHOIS协议来进行的, 目的就是要把关于这个域名的状态信息给拿到手, 这些状态信息就是所谓的注册状态字段。

状态被设置为"active"或者"ok", 并且它的到期时间比当前的日期要晚, 这个情况就说明域名在注册层面上是属于存活状态的, 要是它显示的是"expired"、"pendingDelete"或者是"redemptionPeriod", 那么就说明该域名已经失效了, 或者是已经进入了删除的流程。

你可以使用操作系统中自带的命令行工具whois来做这件事。另外, 还有ICANN官方提供的WHOIS查询页面能够用上。最后, gname.xin也提供了一个可以批量查询在线WHOIS信息的入口。这些方法都可以通过操作来获得已经规范了的注册状态结果。

DNS解析验证

我们接下来会按照顺序,针对目标域名域名存活状态检测, 分别发起对于A记录也就是IPv4地址的查询、以及对于AAAA记录也就是IPv6地址的查询, 同时还会发起对于NS记录的查询。

如果在操作过程中, 权威DNS服务器返回的内容里面包含了有效的IP地址和NS记录的话, 这就可以说明该域名是存在于DNS层面的, 属于存活状态。

反之呢, 如果权威DNS服务器给到的反馈是属于NXDOMAIN状态, 意思就是域名不存在, 或者是属于SERVFAIL状态, 即表现为服务出现故障的情况, 那么这就表明该域名实际上没有在DNS体系内进行接入, 已经停止了所有的解析工作。

怎么判断域名是否存活?域名存活状态检测方法(图1)

常用的工具包含dig、nslookup以及各式各样的在线DNS检测服务。在进行查询操作的时候需要注意指定正确的TLD权威服务器。这样做是为了避免受到缓存数据的干扰。

HTTP/HTTPS可达性检测

向域名根路径, 这个例子比如说是 http 或者 https 带冒号加两个斜杠加域名加一个斜杠这样的方式, 来发起那个请求的行为, 要在设定的超时阈值范围里面完成这个过程, 这个建议值说的是五秒之内, 如果能够获取到 2xx 或者 3xx 这样一个状态码的响应结果的话, 就把这个判定为是存活的这个状态,如果是出现了连接超时的这种情况域名存活状态检测, 或者是连接被拒绝的这种状况, 又或者是 TLS 握手失败的这样一种错误, 亦或是上游 DNS 解析出现异常的这样一个现象的时候, 就把这判定为是不存活的这一种情况使用此方法是最贴近终端用户实际访问体验的这一种方式, 这也是域名存活检测和验证的那个最终的一个环节。

批量检测的组合流程

在批量域名检测的场景下, 建议将上述三项措施按顺序组合执行, 这样做可以缩短无效请求的耗时。首先要通过WHOIS批量过滤已过期域名, 其次要用DNS解析过滤未接入域名的条目, 最后以HTTP请求确认可访问性。

gname.xin这个服务是支持对域名列表进行批量提交的, 但是请注意单次提交的上限是一万条记录, 也就是10,000条, 系统在收到数据后会返回结构化的检测结果, 这些结果里的字段包含有注册状态是什么、解析出来的IP地址是多少、HTTP响应码具体数值是多少、检测过程花费了多少时间以及出现的异常类型都有哪些内容, 这种功能通常是适用于需要进行SEO外链站群监控的人员, 或者是需要针对竞品域名进行定期巡检的工作人员, 也或者是需要排查失效链接的技术人员, 以及需要验证DNS是否发生变更的业务场景。

注意事项

(1)WHOIS数据这边, 存在的时间是从24小时一直到72小时的缓存延迟。刚到期或者刚续费的域名状态, 可能出现滞后的情况。所以我们建议大家, 结合DNS和HTTP的结果来交叉判断一下。

还有呢是部分域名启用了注册商隐私保护机制, 或者是DNSSEC, 这种情况下WHOIS字段就不完整了, 需要以实际解析结果为准才行。批量检测的时候就应该控制并发频率, 建议不要超过每秒50次请求, 这样做是为了避免触发注册局限流导致的误判问题。

检测工具或平台应该定期校准判定逻辑的, 确保与ICANN现行的注册数据规范保持一致不变就行。