DFC302/domx
GitHub: DFC302/domx
用 Go 编写的快速域名解析与提取工具,从域名列表或嘈杂文件中批量解析 TLD、子域名、根域名和 Apex 域名,替代低效的 Python 和 Shell 方案。
Stars: 0 | Forks: 0
# domx
使用 Go 编写的快速域名解析器和提取器。从域名列表或包含杂乱内容的文件中解析出 TLD、子域名、根域名和顶级域名。旨在替代运行缓慢的基于 Python `tld` 的解析器和 shell `geturls` 管道。
## 安装
```
go install github.com/dfc302/domx@latest
```
要求 Go 1.21+。二进制文件将被放置在 `$GOPATH/bin` 中(通常为 `~/go/bin`)。
## 用法
```
domx — domain parser and extractor
Usage:
cat domains.txt | domx [options]
domx -f [options]
Parse flags (pick one):
-apex Return apex domain (eTLD+1), e.g. example.com
-domain Return root domain label, e.g. example
-sub Return subdomain, e.g. www
-tld Return top-level domain, e.g. co.uk
-info Return full JSON breakdown
Other flags:
-f Read input from file instead of stdin
-c Concurrency level (default 100)
```
## 示例
### 清理域名列表
```
# 从列表中获取 apex domain
cat domains.txt | domx -apex
# 通过 file 标志获取 TLD
domx -f domains.txt -tld
# 获取唯一子域名
cat domains.txt | domx -sub | sort -u
# 完整的 JSON 分解
cat domains.txt | domx -info
```
### 包含杂乱内容的文件(混合内容)
看起来不像域名的行会被静默跳过 —— 无需预先过滤。
```
# 从嘈杂文件中仅提取域名
domx -f report.txt
# 一步提取域名并解析 apex
domx -f report.txt -apex
# 同样支持 stdin
cat report.txt | domx -tld
```
### 支持的输入格式
裸域名和完整的 URL 均可被处理:
```
www.example.co.uk
https://sub.example.com/path?q=1
example.com:8080
http://api.target.io
```
### 输出示例
```
$ echo "www.example.co.uk" | domx -apex
example.co.uk
$ echo "www.example.co.uk" | domx -tld
co.uk
$ echo "www.example.co.uk" | domx -sub
www
$ echo "www.example.co.uk" | domx -domain
example
$ echo "www.example.co.uk" | domx -info
{"input":"www.example.co.uk","tld":"co.uk","domain":"example","subdomain":"www","apex":"example.co.uk"}
```
## 注意事项
- 通过 `golang.org/x/net/publicsuffix` 使用 [Public Suffix List](https://publicsuffix.org/) —— 能够正确处理如 `co.uk`、`com.au` 等多段 TLD。
- 非 ICANN TLD(如 `.local` 等私有域名)会被跳过。
- 如果未提供解析标志,`domx` 将充当一个纯粹的提取器 —— 原样输出匹配到的域名行。
- 不支持在同一次调用中使用多个解析标志;第一个匹配的标志将生效。
标签:DNS枚举, eTLD+1, Go语言, Python替代方案, SEO工具, SYN扫描, TLD解析, URL解析, 后端开发, 域名提取器, 域名解析, 子域名提取, 文本提取, 无线安全, 日志审计, 程序破解, 网络信息收集, 网络安全工具, 高并发