分享新作的域名批量查询工具 dmcheck.app - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
kamal

分享新作的域名批量查询工具 dmcheck.app

  •  
  •   kamal
    PlayerYK 15 天前 1044 次点击

    做了个域名批量查询工具,聊聊过程

    理论上能查询 1000+ 域名后缀的小工具: https://dmcheck.app

    功能很简单输入一个关键词,同时查询多个后缀的域名注册状态。查询时预配置了 83 个 TLD 的 WHOIS 服务器直连,再加上 RDAP 协议兜底,理论上能覆盖 1000+ 后缀。结果通过 SSE 逐条推送,不用等全部查完。

    一直查域名都是用的 query.domains 这个网站,交互非常棒,只是人机验证有点多,所以想着自己练手复刻一个。

    看起来很简洁,但做起来才发现细节非常多。


    一些踩过的坑

    WHOIS 没有统一标准。
    每个注册局返回的格式都不一样,比如日期可能是 2025-03-1515/03/2025March 15, 2025。字段名也不统一,有的叫 Creation Date,有的叫 created,有的叫 Registration Time,需要做大量兼容处理。

    限流问题比想象中更隐蔽。
    并发查询十几个后缀时,如果对同一个 WHOIS 服务器连续发请求,对方往往不会报错,而是直接返回空响应,这一点非常难排查。

    最后做了三层防护:同一个 WHOIS 服务器串行请求、空响应自动重试,以及 RDAP 单独限制并发数量。

    缓存策略需要分情况设计。
    未注册的域名缓存时间要短,因为随时可能被注册;已注册的可以长缓存;查询失败的 unknown 状态干脆不缓存。

    另外,详情面板不复用缓存因为详情需要完整数据,所以每次都会重新查询。

    “没有被注册”不一定真的可注册。
    有些域名其实是注册局保留的,需要从 WHOIS 返回中额外解析出 reserved 状态,并和 availableregistered 做区分。


    关于交互

    交互其实也反复调了好几轮。

    比如:结果列表的状态区分、最近注册域名用相对时间展示、输入完整域名时自动追加后缀……这些单独看都不难,但组合在一起就比较花时间。

    最后看起来还是挺像 query.domains ,但整个过程确实学到了不少东西。


    技术选型

    为了在小内存 VPS 上运行,选择了 Go:

    • 编译成单个二进制文件
    • 没有使用框架,也没有构建工具
    • 部署方式很简单:scp + systemctl restart
    • GitHub Actions 推到 publish 分支自动完成发布

    Redis 缓存是可选的,没有 Redis 也可以正常运行。


    最后

    这是一个看起来很简单,但实际充满细节的小项目。

    一个查询页面背后,要处理的边界情况比想象中多得多。不过整个过程还是挺好玩的,也很有成就感。


    GitHub 开源: https://github.com/PlayerYK/dmcheck
    在线体验: https://dmcheck.app

    AGPL-3.0 协议,欢迎提 issue 和 PR 。

    4 条回复    2026-04-10 11:53:46 +08:00
    shortawn
        1
    shortawn  
       15 天前
    sohu022
        2
    sohu022  
       15 天前
    用 vercel domains, 一键查询 550+个域名, 也没有人机验证, 很好用。https://vercel.com/domains
    BeCool
        3
    BeCool  
    PRO
       15 天前   1
    之前给 https://query.domains 加 turnstile 验证是不得已为之,爬虫请求太频繁了,影响了正常用户的使用。后面会优化下,比如登录用户一周只需要验证一次。
    kamal
        4
    kamal  
    OP
       15 天前
    @BeCool #3 感谢做出这么好用的工具,实际做才能体会到简洁的界面后面做了多少取舍,多少优化。要是能登录后减少验证,仍然是我首选工具。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2948 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 06:44 PVG 14:44 LAX 23:44 JFK 02:44
    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