用 domain-scanner 把域名探测留在本地:三种信号交叉验证,低误报率
domain-scanner 是一个 Go 编写的开源域名扫描工具,针对批量域名检测场景设计。扫描过程完全在本地完成,不依赖商业 API 或云端服务,适合需要控制数据流向的运维和开发场景。
主要功能
灵活的域名生成机制
支持两种域名输入源:
- 模式生成:通过占位符批量生成组合域名。
d代表数字,D代表字母,a代表字母数字混合。 - 字典导入:从外部
.txt文件读取候选单词列表,逐词拼上目标后缀。
三重交叉验证引擎
对候选域名同时检查三种信号:DNS 记录(NS/A/MX)、WHOIS 信息、SSL 证书。每一条结果会附带命中信号签名,例如 [DNS_NS, WHOIS]。只有单一信号命中的结果会被标记出来,整体假阳性率约 5%。
高级正则过滤
内置 regexp2 库,支持 Perl 兼容正则语法,包括反向引用。示例如下:
^(.)\1{2}$
这条规则可匹配 aaa 这类重复字符组成的域名。同时内置 ReDoS 防护:单次匹配超时上限 100ms,并拦截嵌套量词,避免恶意正则在扫描时卡死。
智能性能与安全控制
提供并发数(-workers)和请求间隔(-delay)两个调节参数。当扫描规模过大时(例如 6 位纯字母组合超过 3 亿个),程序会弹出耗时预估警告,需要手动确认或加 -force 参数跳过。
定位场景
- 域名投资:批量扫描短后缀(如
.li、.io)或纯数字/字母组合,发现尚未注册的短域名。 - 品牌保护:将品牌词或竞品词导入字典,定期扫描
.com等主流后缀,排查恶意抢注或侵权域名。 - 营销活动域名储备:用正则或字典生成与营销主题相关的域名变体(如
shop、buy),提前锁定可用资源。 - 安全研究与红队测试:检测恶意域名注册倾向,或验证某个域名是否已被黑产占用。
项目信息
GitHub:
安装教程
项目用 Go 编写,无需额外环境变量。本地安装 Go 环境后即可使用。
克隆代码
git clone https://github.com/xuemian168/domain-scanner.git
cd domain-scanner
下载依赖
国内用户可配置 Go 代理加速:
go mod download
运行程序
# 直接运行
go run main.go [参数]
# 或编译成可执行文件(方便分发)
go build -o domain-scanner main.go
./domain-scanner [参数]
实战命令示例
扫描 3 位纯字母的 .li 后缀域名,开 20 个并发,请求间隔 500ms:
go run main.go -l 3 -s .li -p D -workers 20 -delay 500
读取 mylist.txt 中的单词,检查其在 .com 下的注册情况:
go run main.go -dict mylist.txt -s .com
筛选 4 位纯数字中前两位相同的域名(如 11xx.xyz):
go run main.go -l 4 -s .xyz -p d -r "^(.)\1"
查看所有已注册和未注册的域名,结果自动生成两个 .txt 文件:
go run main.go -l 2 -s .io -p a -show-registered -force