怎么从源头上去查询一个域名是否被注册了

luckyhyp 2025-01-16 15:09

我给大家科普一下怎么查域名吧,不要去祸害 query.domains 了

听说不少人写程序去爬 query.domains 的接口,今天的#哥飞小课堂 ,给大家上一节技术课,告诉大家怎么从源头上去查询一个域名是否被注册了。 这个源头数据是所有域名注册查询程序的数据来源,最实时,最权威。

首先大家需要理解,每一个域名后缀,都有一个域名注册局,而大家常用的Godaddy 等是域名注册商。 每一个域名,都在域名注册局管理,域名注册商,大家可以理解为代理商。 不过有一些域名注册局自己没有管理能力,也可能外包给一些公司来管理,那么这些公司,也可以算是这个域名的注册局(严格来说是技术服务商),同时也是注册商.

一个注册局,通常只会管理有限的几个域名后缀。 一个注册商,可以接入多个注册局,提供多种域名后缀注册服务。

还有一些网站虽然也提供了域名注册服务,但他们本身不是域名注册商,他们只是某些注册商的代理。

而域名注册数据,就存储在WHOIS 服务器里,英文名是 Whois Server。 向Whois Server 查询信息,不需要登录注册,人人都可以查询,只要按照协议发送请求,就可以得到返回的 Whois 信息。

IANA (Internet Assigned Numbers Authority) 维护着顶级Whois Server ,域名是 whois.iana.org 。 里边存储着注册局信息、注册局的 Whois Server ,以及一些其他信息。

每一个Whois Server 都可以通过 Socket连接到 43端口,发送域名信息加回车,就能够得到Whois Server 返回来的信息。

IANA有顶级Whois Server ,每一个域名注册局也有自己的Whois Server ,每一个域名注册商也有自己的Whois Server 。 这些不同的Whois Server 的地址各不相同. 我们可以自顶而下去查询得到每一个域名的Whois 信息。

Frey:qiuyumi.com 的 whois还在维护吗

哥飞:老是被人当接口,我没去维护了。 现在假设,我们需要去查询 chatgpt.com 的Whois 信息,假设我不知道.com 域名的Whois Server是哪个,我们可以先去 IANA 的 Whois Server whois.iana.org 查询。

我们用Socket 连接 whois.iana.org 的43端口,发送.com或者com ,然后加上回车,在返回的 whois 信息里,就可以找到一个 Whois Server : whois.verisign-grs.com

3427afcece2e7d113a60f972a919bcb2_.png3427afcece2e7d113a60f972a919bcb2_.png

同理,你输入ai也能够查到 ai域名后缀的 Whois Server是 whois.nic.ai 。

7ee10628f5abc1e9b07aea39d7c10787_.png7ee10628f5abc1e9b07aea39d7c10787_.png

通过这个方法,你可以查询出目前全球一千多种域名后缀的 Whois Server 。

有了域名注册局的 Whois Server 之后,你就可以继续用 Socket 连接注册局的Whois Server 的 43,发送完整域名进去,得到更详细的域名信息。

3c28731e4df59f239a904f9aa76e2143_.png3c28731e4df59f239a904f9aa76e2143_.png 1f61610ea212714375b6d1dc392fd827_.png1f61610ea212714375b6d1dc392fd827_.png

对于每一个域名,如果已经被注册了,你可以得到域名的whois信息,里边包含了域名注册人信息,域名注册时间,到期时间等信息。

不过.ai域名注册局比较奇葩,域名注册时间和结束时间都不返回。

对于没有被注册的域名,也会返回明确的标志,你可以通过代码来识别标志。

每一个不同的域名注册局,Whois信息格式都不完全一样,你需要自己写程序,写正则表达式去适配,抽取出有用的信息。

8f109884db949169c63c0c9a3ea40376_.png8f109884db949169c63c0c9a3ea40376_.png

黄八宝:那我不就可以拿老的 ai 域名来参加新词比赛了

哥飞:在详细的Whois信息里,还能看到域名注册商的Whois Server 地址。 同样你也可以连接 43端口去进一步查询信息。

不过,很多年前,为了保护隐私,域名注册商的Whois Server里已经不会返回更详细的信息了。

所以现在如果大家只是为了确定域名是否被注册,得到已注册域名的注册时间到期时间等信息的话,完全没必要再去查询注册商的Whois Server了。

ee064baf35eb045673b5ae6e7bb050b9_.pngee064baf35eb045673b5ae6e7bb050b9_.png

域名注册信息里其实有,只是.ai 的注册局,不公开返回了.

好了,现在总结一下,如果大家要去批量查询域名注册信息,其实Whois Server返回的才是一手信息,大家没必要到处去找 API 了,这东西直接公开可查的。

不过也要提醒一下,有一些小注册局,他们会限制你单个 IP 短时间内查询次数,所以你需要用多个 IP 去查。


Airyland:补充一点,whois 43端口是上一代的协议,新的RDAP协议已经有不少注册局支持了,走 http 接口返回JSON。


哥飞:补充 Airyland提到的RADP 协议,我没用过,大家可以去了解一下。

我自己维护了一个简单的Whois API 服务,代码是 AI写的,放在了Cloudflare 的Worker 里。 不过暂时没公开,只是自己用,并且我整理的后缀有限。 大家有需要,也可以这样操作。 你整理的后缀越多,支持的后缀也越多。

好了,今天的哥飞小课堂(技术版)就到这里了。

2 人阅读了

还没有人点赞,来做第一个


最后更新于 2026/10/7