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

Featuredogdignslookupdrill
ColorizedYesNoNoNo
JSONYesYes (+yaml)NoNo
DoHYesYes (9.18+)NoNo
DoTYesYes (9.18+)NoNo
SyntaxSimpleComplexSimpleSimple
SpeedFastFastFastFast

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