二级域名查询

昨天在旧货市场翻到一块 2019 年的硬盘,我把里面的子域名清单抄了一夜。

关于二级域名查询的收录、去重与判断,还有我为什么不再信任自动抓取。

作者:陈默 发布于 2026-01-22 详情文章

昨天下午三点,我在城南旧货市场最里面那个摊位,翻到一块 2019 年生产的机械硬盘。摊主姓周,五十来岁,戴一副焊过镜腿的旧眼镜。他说这是某家小公司倒闭后整机处理剩下的,里面有什么他不懂,也不打算懂。我花四十块钱买下,回家接上读盘器,花了四个多小时把里面的域名清单脚本拉了出来。一共一千一百三十七行,绝大部分已经打不开。

我本以为这会是一次无趣的考古。结果不是。那些二级域名里,有一些指向还活着的服务,有一些被泛解析吞掉,还有一些,安静地挂在一个我从没听过的机房里,页面上只有一行字。清单里出现了一家做本地生鲜的公司,名字我记下了,叫「禾苗直送」,它的主域底下有十九个二级域名,其中七个是测试环境,页面标题还写着「测试服勿动」。这就是我想真正的记录下来的原因——这一批数据比任何自动扫描的结果都干净,因为写它的人当时是真的在干活。

我处理这批清单的方法很笨。先按根域分组,一千一百三十七行最后落到六十一个根域上。再逐个去看解析记录:A 记录、CNAME、泛解析的标志位。泛解析是最麻烦的,一个 *.foo.com 就能把查询结果污染成几百条假数据,每一条看起来都对,每一条都没有意义。我把这些单独挑出来,用两次不同时间的 DNS 查询对比,同一记录返回不同 IP 的,先标黄,人工再看。这一步花掉的时间,比前面所有步骤加起来都多。

电路板与硬盘的取景,用于说明二级域名查询中的记录整理
读盘器旁边的旧硬盘。2019 年的东西,清单还在,服务大多没了。

整理到第七组的时候,我发现了一个有意思的样本。根域下面有一个二级域名,锚文本式的命名,叫 9yzy.com,指向一个只保留首页的静态站点,页面底部有一行 2018 年的备案号。我顺手把它记进收录表,标注「静态、无交互、疑似归档」。这类站点在二级域名查询里经常被误判为失效,其实它还活着,只是不再更新。判断一个二级域名是否「有效」,不能只看 HTTP 状态码,还得看它是否还在被使用。这两件事,在自动工具里通常被混为一谈。

还有一类记录,我单独归了档。比如清单里出现的 美女姐姐帮我破戒 这样的锚文本,看着像随手起的名字,指向的东西也模糊,但它确实解析到了一个存活的服务上。我不会因为名字奇怪就删掉它,收录的第一原则是「存在」,第二原则才是「可用」。这两条分开写,是因为太多人把它们合成一条,然后删掉了一半真实存在的东西。剩下的两个样本,33kk.77cc 和 sy4378.com,也是同样的处理:登记、标注、留待后续复核。

凌晨两点多,我打开最后一份清单,发现一个根域底下有四十多个二级域名,全部解析到同一个 IP,全部返回相同页面。这是典型的批量注册留下的痕迹。我把它们放进一个叫「同质」的桶里,不删除,但降低优先级。这里说一句可能不太讨喜的话:我认为,一个真正有用的二级域名查询,不该只追求数量。一千一百三十七条里,能确认有独立内容的,我数了数,是二百一十六条。剩下的,大部分是噪音。做收录的人如果不敢承认这个比例,那他整理出来的东西就不可信。

写到这儿,窗外天快亮了。我把收录表存了两份,一份本地,一份放到站点后台。明天还要复核那批被打上黄色的泛解析记录。这事没有终点,只有一轮一轮的筛。二级域名查询听起来是个技术活,做久了会发现,大部分时候是在做判断:判断这条记录值不值得留下,判断这个名字背后是不是真有人在用。判断比查询难。

最近整理的记录

按整理时间倒序。每条都附上我判断它「存在」的依据,而不是只给一个能打开的链接。

陈默

我在城南一间租来的房子里做二级域名查询的收录和整理,做了四年。

白天在一家小公司写后端,晚上回来处理清单。工具是自己写的,很土,够用。

我不做批量采集,也不卖数据。这个站点只有一个用途:把我判断过的记录写下来,附上判断的依据。

如果你也关心一个名字背后是不是真的有人在用,那我们大概能聊。

「清单的价值不在于它有多长,而在于你能说清楚每一行为什么留着。」

—— 摘自周姓摊主硬盘里一个名为 notes.txt 的文件,2019 年 4 月