| Crates.io | rdig |
| lib.rs | rdig |
| version | 0.1.0 |
| created_at | 2025-12-31 07:42:37.428142+00 |
| updated_at | 2025-12-31 07:42:37.428142+00 |
| description | get dns over https via dns.google |
| homepage | |
| repository | |
| max_upload_size | |
| id | 2014196 |
| size | 67,924 |
一个类似 dig 的 DNS 查询工具,支持 dns.google 的两种请求方式:JSON 格式和 RFC 标准格式。
https://dns.google/resolve 端点https://dns.google/dns-query 端点(DNS wireformat)cd /Users/dilfish/rs/rdig
cargo build --release
编译完成后,可执行文件位于 ./target/release/rdig
# 查询 A 记录(默认)
./target/release/rdig google.com
# 查询特定记录类型
./target/release/rdig google.com -r MX
./target/release/rdig google.com -r NS
./target/release/rdig github.com -r AAAA
Usage: rdig [OPTIONS] <DOMAIN>
Arguments:
<DOMAIN> 要查询的域名
Options:
-r, --record-type <RECORD_TYPE> DNS 记录类型 (A, AAAA, MX, NS, TXT, CNAME, SOA 等)
[default: A]
-f, --format <FORMAT> 查询格式
- json: JSON 格式响应(默认)
- rfc: RFC 标准格式(DNS wireformat)
[default: json]
-d, --dnssec 启用 DNSSEC 验证
-r, --recursive 启用递归搜索 [default: true]
-h, --help 显示帮助信息
$ ./target/release/rdig google.com
; <<>> rdig google.com
; (json format)
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 0
;; flags: qr ra rd; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 37 IN A 172.253.118.138
google.com. 37 IN A 172.253.118.100
google.com. 37 IN A 172.253.118.102
google.com. 37 IN A 172.253.118.139
google.com. 37 IN A 172.253.118.101
google.com. 37 IN A 172.253.118.113
;; Query time: 0 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Dec 31 14:33:04 +08:00 2025
;; MSG SIZE rcvd: 0
$ ./target/release/rdig google.com -r MX
; <<>> rdig google.com
; (json format)
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 0
;; flags: qr ra rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN MX
;; ANSWER SECTION:
google.com. 300 IN MX 10 smtp.google.com.
;; Query time: 0 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Dec 31 14:33:22 +08:00 2025
;; MSG SIZE rcvd: 0
$ ./target/release/rdig google.com -f rfc
; <<>> rdig google.com
; (rfc wireformat)
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 0
;; flags: qr ra rd; QUERY: 0, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; Query time: 0 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Dec 31 14:33:13 +08:00 2025
;; MSG SIZE rcvd: 0
reqwest - 异步 HTTP 客户端tokio - 异步运行时serde & serde_json - JSON 序列化/反序列化clap - 命令行参数解析anyhow - 错误处理chrono - 时间处理rdig/
├── Cargo.toml # 项目配置和依赖
├── Cargo.lock # 依赖锁定文件
├── src/
│ └── main.rs # 主程序源码
└── target/ # 编译输出目录
https://dns.google/resolve 端点https://dns.google/dns-query 端点application/dns-messageMIT