doggo
🐶 面向人类的命令行DNS客户端
doggo 是一个用 Golang 编写的现代命令行 DNS 客户端(类似 dig)。它以简洁明了的方式输出信息,并支持 DoH、DoT、DoQ 和 DNSCrypt 等协议。
它完全受到用 Rust 编写的 dog 的启发。我想为其添加一些功能,但由于不懂 Rust,我将其视为一个用 Go
从头开始编写 DNS 客户端的好机会。因此得名 dog
+ go
=> doggo。
安装
简易安装(推荐)
curl -sS https://raw.githubusercontent.com/mr-karan/doggo/main/install.sh | sh
包管理器
- Homebrew:
brew install doggo
- Arch Linux:
yay -S doggo-bin
- Scoop(Windows):
scoop install doggo
- Eget:
eget mr-karan/doggo
二进制安装
你可以从 Releases 页面下载适用于各种操作系统和架构的预编译二进制文件。
Go 安装
如果你的系统已安装 Go,可以使用 go install
命令:
go install github.com/mr-karan/doggo/cmd/doggo@latest
二进制文件将位于 $GOPATH/bin/doggo
。
Docker
docker pull ghcr.io/mr-karan/doggo:latest
docker run --rm ghcr.io/mr-karan/doggo:latest example.com
有关更多安装选项,包括二进制下载和 Docker 镜像,请参阅完整安装指南。
快速入门
以下是一些快速入门的 doggo 示例:
# 简单的 DNS 查询
doggo example.com
# 使用特定的名称服务器查询 MX 记录
doggo MX github.com @9.9.9.9
# 使用 DNS over HTTPS
doggo example.com @https://cloudflare-dns.com/dns-query
# 用于脚本编写的 JSON 输出
doggo example.com --json | jq '.responses[0].answers[].address'
# 反向 DNS 查询
doggo --reverse 8.8.8.8 --short
功能
- 人类可读的输出,带有颜色编码和表格格式
- 支持 JSON 输出,方便脚本编写和解析
- 多种传输协议:DoH、DoT、DoQ、TCP、UDP、DNSCrypt
- 支持
ndots
和search
配置 - 支持多个解析器,可自定义查询策略
- 支持 IPv4 和 IPv6
- 提供网页界面
- 支持
zsh
和fish
的 Shell 自动补全 - 反向 DNS 查询
- 灵活的查询选项,包括各种 DNS 标志
- 调试模式用于故障排除
- 响应时间测量
- 跨平台支持
文档
有关全面的文档,包括详细的使用说明、配置选项和高级功能,请访问我们的官方文档网站。
赞助
如果您觉得 doggo 有用并想支持其开发,请考虑成为赞助者。您的支持有助于维护和改进这个开源项目。
每一份贡献,无论大小,都受到极大的感谢,并有助于保持这个项目的活力和成长。感谢您的支持!🐶❤️
许可证
本项目采用 MIT 许可证。