域名存活状态检测的核心目标, 是确认当前的一个域名, 是否处于注册有效、DNS可解析的可用状态。这个判断的依据, 不是浏览器能否打开网页。

而是注册局侧的域名状态码, 还有DNS层面的解析响应。下面我们会从判定标准聊起, 接着讨论查询入口, 然后说明注意事项, 最后给出实操流程, 以此呈现一个完整的检测方案。

域名存活状态的判定标准

一个域名, 如果要被认为是在存活着的状态的话, 是需要同时把下面三个条件都弄满足的。

1. 注册状态正常: 指的是, 在 ICANN 以及相对应的注册局那里, 域名的状态会被显示成"ok" 或者"active", 也就是说, 这个域名没有处在像 expired、pendingDelete、clientHold、serverHold 这样的异常状态下。

2. DNS解析有效: 这意味着域名的NS记录是存在的, 并且权威的NS服务器能够对查询作出正常响应。另外, 这里至少有一条有效的A记录、AAAA记录或者CNAME记录。这些记录能够被解析到一个可以到达的IP地址。

3. 这种情况被定义为不在删除周期内, 这意味着该域名目前的状态是, 它并没有进入由注册局所规定的那种删除过渡阶段。

一般来说, 在域名到期之后会有一个为期30天的宽限期, 紧接着会是一个为期30天的赎回期, 只有在经历了这些漫长的过程之后, 域名的状态才会正式变更为已释放, 所以当前显然还没有走到那一步。

如果域名的时间已经过了, 可还在赎回期里面, 登记的状态变得不正规了, 从严格的意思上来说, 它不再处于活着的状态, 但是原来的拥有者还是有着把域名恢复过来的可能性的。

查询入口与检测方法

RDAP/WHOIS查询(单域名,最权威): 这个操作可以通过ICANN官方提供的入口rdap.org, 在输入域名的情况下完成查询, 也可以直接去调用各个注册局推出的RDAP接口。

返回结果数据里面的字段当中, “status”这一项就是最核心、最基本的判定依据。命令行可执行 whois example.com,关注"Domain Status"和"Expiry Date"两项。

DNS查询(解析层验证):使用 dig example.com NS 确认NS记录是否存在;dig example.com A 确认是否有解析结果。建议大家去指定那些权威的ns查询工具。

域名存活状态检测怎么查?判断标准、查询入口与批量方案(图1)

这个工具的典型用法是使用代码标签包裹的dig命令, 并且指向特定的名称服务器地址, 同时指定要查询的域名以及记录类型a。这么做主要是为了避开本地缓存可能带来的干扰问题。

针对需要同时对成百上千个域名进行巡检的场景, 大家可以利用由gname.xin这个平台所提供的那个关于域名存活状况的批量检测方面的应用程序接口功能。只要在输入框里把那些域名的名单给填进去, 系统就会自动去帮咱们完成注册状态到底是怎么样的一个查询工作, 以及DNS解析方面的验证动作。

最后会返回一种结构化的结果信息, 这些结果里面包含了域名是处于存活状态、过期状态、删除状态或者是解析失败状态的详细情况。除此之外, 这个接口还支持大家设置定时任务来进行调用操作, 同时也具备异常时的告警功能, 以便及时发现问题。

常见误判与注意事项

CDN/负载均衡干扰, 意思是在域名后面挂上了CDN之后, 哪怕源站服务器都已经宕机了, DNS解析操作依然能够正常进行, 所以得到的检测结果就会显示存活状态是需要区分DNS层面上的存活和应用层面是否可用的情况, 后者需要额外去执行HTTP请求来进行探活检查。

DNS缓存滞后, 这个情况是因为运营商那边的递归DNS服务器存在TTL缓存导致的。所以那些刚刚被删除的域名, 在本地可能依然还会有留下的缓存记录。因此在需要判定的时候, 应当直接去查询权威的NS服务器。或者可以在缩短TTL设置之后再次去复验。

批量查询频率限制: ICANN这个组织, 对WHOIS或者RDAP这类查询动作, 设置了每秒可以承受多少次请求的限制条件。

如果是做批量检测的话, 需要去控制同时发起的请求数量, 建议你把这个数量控制在每秒不超过5次的范围内。这样做的目的是为了防止因为发送太频繁而被IP地址封禁, 否则整批任务都会失败。

实操建议

对单域名进行日常的检查。打开浏览器, 访问 rdap.org。粘贴域名。在30秒内完成状态确认。

实行常态化的批量巡检工作。把域名池接到gname.xin的批量检测接口去。配置一个定时任务, 这个任务是每4至6小时执行一次。

对返回的状态是“pendingDelete”或者是“expired”, 再或者是“NS无响应”的域名, 要触发告警。这样运营团队就能提前处理续费的有关事情, 或者进行更换操作。这么做是为了避免域名资产流失的情况发生。

上面的那个方案, 能够覆盖从查询一条记录到进行批量自动处理, 还有从注册环节到解析环节的各种全链条检测方面的要求。它适用于一些场景, 比如像是要对域名的资产情况做盘点, 或者对搜索引擎优化的外部链接情况进行监测, 又或者是对企业品牌相关的域名进行保护这类事情。