cn 域名有效期无法自动化查询,各位大佬有解决方案吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
szq8014
V2EX    程序员

cn 域名有效期无法自动化查询,各位大佬有解决方案吗

  •  
  •   szq8014 1 天前 745 次点击

    最近在做一个运维质量提升的小项目,想分享一下,也想请教下有没有更好的解决方案。

    公司内部给客户部署的系统里,大概有二十来个项目是使用客户自己的域名现在计划做一个自动化脚本,定期检测这些域名的有效期,提前预警。

    目前踩了一圈坑,发现域名到期检测其实没想象中那么简单:

    对于非 .cn 域名用一些开放的 RDAP 接口(例如 https://client.rdap.org/)可以直接查到域名的基础信息,包括到期时间,整体比较顺畅,没啥问题。

    但 .cn 域名有点麻烦了,国内这块几乎没有可直接调用的公开接口。 官方的查询( https://www.cnnic.com.cn/)必须要验证码,人机校验还不能跳过……脚本跑不起来,只能考虑接一个验证码识别服务。

    目前卡在 .cn 域名的有效期获取上,不知道大家有没有遇到类似需求? 有没有大佬知道有没有更优雅或者更稳定的解决办法?

    9 条回复    2025-11-15 09:45:59 +08:00
    python35
        1
    python35  
       1 天前   1
    看了下 https://www.cnnic.cn/ 这个页面 只要不刷新验证码 可以用一个验证码一直查不同的域名 再加上是 4 位数的图片验证吗 找人标个 200 张 写个多层 conv 识别就行
    Bisn
        2
    Bisn  
       1 天前   1
    https://github.com/dromara/domain-admin 这个开源项目可以看到域名到期时间
    dandankele
        3
    dandankele  
       1 天前   1
    用 whois 命令查也行吧,不知道限不限制频率,而且你的客户也不多,查询间隔时间长一点,然后存储起来就行

    root@localhost:~# whois nmc.cn
    Domain Name: nmc.cn
    ROID: 20030310s10001s00013947-cn
    Domain Status: ok
    Registrant: 国家气象中心(中央气象台)
    Registrant Contact Email: [email protected]
    Sponsoring Registrar: 北京国科云计算技术有限公司(原北京中科三方网络技术有限公司)
    Name Server: ns1.sfn.cn
    Name Server: ns2.sfn.cn
    Registration Time: 2003-03-10 19:14:55
    Expiration Time: 2026-12-08 13:45:51
    DNSSEC: unsigned
    Curtion
        4
    Curtion  
       1 天前
    直接用 whois 吧,我记得很多开源项目都是支持 cn 域名到期时间查询的
    szq8014
        5
    szq8014  
    OP
       1 天前
    @Bisn 感谢,里面能看到处理域名查询的代码,学习学习
    skiy
        6
    skiy  
       1 天前 via iPhone
    cnnic 官网有近三天过期删除的接口。whois 不准确的,因为有 75 天待删除期。
    huangsen365
        7
    huangsen365  
       1 天前   1
    whois 能查但不够准,尤其是 .cn ,同步延迟 + 赎回期都会影响结果,所以 whois 只能作为辅助参考之一。
    更稳的方案还是优先调用注册商自己的 API 拿官方 JSON ,把结果存库,再结合 whois 做交叉校验。

    如果必须用 whois ,那就多准备几个查询节点(不同地区/网络)轮询,避免限流,也能拿到更完整的数据。

    简单说:能走 API 就走 API ,whois 只是参考,不适合作为唯一数据源。
    huangsen365
        8
    huangsen365  
       1 天前
    比如假设:域名是阿里云注册的,就直接调阿里云的接口:
    https://api.aliyun.com/document/Domain/2018-01-29/QueryDomainByDomainName

    我自己已经在用,准确又稳定。
    vovov
        9
    vovov  
       1 天前 via iPhone
    换个思路,调用注册接口
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2482 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 20ms UTC 02:33 PVG 10:33 LAX 18:33 JFK 21:33
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86