dnsglobe 0.1.0

Global DNS propagation checker TUI — watch a DNS record propagate across 34 public resolvers worldwide, on a world map in your terminal
dnsglobe-0.1.0 is not a library.

dnsglobe

A global DNS propagation checker for your terminal — a Rust TUI that queries 34 public DNS resolvers around the world in parallel, compares their answers, and shows the propagation of your record on a world map.

Think dnschecker.org / whatsmydns.net, but in your terminal, with watch mode: start a check and it re-polls until the record has propagated everywhere.

Resolvers span the global anycast networks (Google, Cloudflare, Quad9), North America, Europe, Russia, the Middle East, East Asia, and the southern hemisphere (Telstra AU, SafeSurfer NZ, UOL BR) — each queried directly, so you see every server's own current view of the record.

┌ 🌍 DNS Propagation Checker ───────────────────────────────┐
│ Domain: example.com▏   Type: A  (Tab to cycle)            │
└───────────────────────────────────────────────────────────┘
 propagation 19/20 (95%) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 Resolver           Loc     IP        Time   TTL  Status    Answer
 Google Public DNS  Anycast 8.8.8.8   52ms   300  ✓ OK      104.20.23.154, …
 Yandex DNS         RU      77.88.8.8 208ms  120  ≠ DIFFERS 8.47.69.0, …

Each resolver is queried directly (no cache, EDNS0, TCP fallback for truncated answers), so what you see is each server's own current view of the record. Answers sharing any record are grouped together — so round-robin DNS (each resolver caching a different subset of an IP pool) counts as one consistent answer, not twenty conflicting ones. The propagation gauge shows how many resolvers are in the majority group; outliers are flagged ≠ DIFFERS once all results are in.

On terminals ≥150 columns wide, a world map appears on the right with one dot per resolver, colored by status (green agrees, magenta differs, red error, yellow in flight).

Usage

cargo install dnsglobe              # or build from source with cargo build --release

dnsglobe                            # start empty, type a domain
dnsglobe example.com                # query immediately and watch
dnsglobe --once example.com TXT    # no TUI: print results, exit (for scripts)

Keys

Key Action
type / ⌫ / Del edit domain
←/→ / Home/End move cursor in the domain field
Enter start the check and watch: re-polls every 30 s until propagation reaches 100%
Ctrl+R stop or resume watching
Tab / Shift-Tab select record type (A, AAAA, CNAME, MX, NS, TXT, SOA)
↑/↓ / PgUp/PgDn scroll the resolver table
Ctrl+U clear domain
Esc / Ctrl+C quit

Notes

  • Several resolvers are anycast networks, so the responding node is the one nearest to you; the location column is the operator's home region.
  • Resolver list lives in src/resolvers.rs — add or remove entries freely. Every entry was verified to answer external queries; many well-known ISP resolvers (and, notably, all major African ones) refuse queries from outside their network, so they can't be included.