TL;DR — Quick Summary
dog is a user-friendly DNS client with colorized output, JSON export, and DoT/DoH support. A modern alternative to dig and nslookup.
dog makes DNS lookups readable. Colorized output, simple syntax, JSON export, DoH/DoT — everything dig should have been.
Installation
# macOS
brew install dog
# Arch Linux
sudo pacman -S dog
# Cargo
cargo install dog
Usage
# Basic lookup (A records)
dog example.com
# Specific record types
dog example.com MX
dog example.com AAAA
dog example.com NS
dog example.com TXT
dog example.com CNAME
dog example.com SOA
# Specific DNS server
dog example.com @8.8.8.8
dog example.com @1.1.1.1
# DNS-over-HTTPS
dog example.com --https @https://cloudflare-dns.com/dns-query
# DNS-over-TLS
dog example.com --tls @dns.google
# JSON output
dog --json example.com
dog --json example.com | jq '.responses[].answers[].address'
# Short output
dog -1 example.com
# Multiple queries
dog example.com MX NS TXT
# Reverse lookup
dog -x 8.8.8.8
Comparison
| Feature | dog | dig | nslookup | drill |
|---|---|---|---|---|
| Colorized | Yes | No | No | No |
| JSON | Yes | Yes (+yaml) | No | No |
| DoH | Yes | Yes (9.18+) | No | No |
| DoT | Yes | Yes (9.18+) | No | No |
| Syntax | Simple | Complex | Simple | Simple |
| Speed | Fast | Fast | Fast | Fast |
Summary
- dog is a modern DNS client with colorized output and simple syntax
- Supports A, AAAA, MX, NS, TXT, CNAME, SOA, and reverse lookups
- DNS-over-HTTPS and DNS-over-TLS for secure queries
- JSON output for scripting (pipe to jq)
- Written in Rust — fast and cross-platform