Korean

doggo — Network Analysis and Diagnostics

Latest Tool Guides / Network Analysis and Diagnostics / doggo.html

Network Analysis and DiagnosticsOriginalRegistered 2026-10-18T23:30:00+09:00

A modern DNS lookup client that replaces dig. Supports color output, JSON, and simultaneous lookup of multiple records.

Basic Information

Program Namedoggo
One-line IntroductionA modern DNS lookup client that replaces dig. Supports color output, JSON, and simultaneous lookup of multiple records.
Development & MaintenanceKaran Rajeev (mr-karan)
Official Homepagehttps://doggo.mrkaran.dev
Official Documentationhttps://doggo.mrkaran.dev/docs/
Official Downloadhttps://doggo.mrkaran.dev/docs/getting-started/installation/
Supported Operating SystemsLinux, macOS, Windows (Binary, Homebrew, Debian, RPM)
LicenseApache-2.0
Stable Version1.0.x — Verified on 2026-10-18
GitHub Repositoryhttps://github.com/mr-karan/doggo
CategoryNetwork Analysis & Diagnostics (Tags: DNS, dig, lookup, CLI, Go)

What is this program?

doggo is a modern DNS lookup tool designed to replace the standard dig command. It provides color-coded output, choice of JSON or table format, and the ability to query multiple records (A, AAAA, MX, TXT, etc.) at once.

Written in Go, it runs as a single binary anywhere and also supports DNS over HTTPS (DoH) and DNS over TLS (DoT). It can follow the default system DNS settings or specify any arbitrary nameserver.

What problem does it solve?

  • When dig's default output is hard to read, it provides a color-coded, organized format.
  • It is used to look up multiple records (MX, TXT, NS, etc.) of a domain at once.
  • It is used for private lookups via DNS over HTTPS.
  • It is used to parse DNS results into scripts in JSON format.

Key Features

Simultaneous Lookup of Multiple Records

Can query A, AAAA, MX, TXT, NS, CNAME, and others in one go.

  • Use Case: When checking domain configuration, you don't have to query each record separately.
  • Outcome: View all records on a single screen.
  • Limitations: Some non-standard records may not be supported.

JSON Output

Outputs lookup results in JSON format for use in scripts and automation.

  • Use Case: Used to automatically verify DNS configuration in CI/CD pipelines.
  • Outcome: DNS results can be processed as structured data.
  • Limitations: JSON output can become lengthy with large-scale queries.

DNS over HTTPS / TLS

Supports encrypted DNS lookups via DoH and DoT protocols.

  • Use Case: Used when concerned about ISP DNS tampering or eavesdropping.
  • Outcome: DNS queries can be sent over an encrypted channel.
  • Limitations: DoH server responses might be slower than standard DNS.

Custom Nameserver

Allows specifying an arbitrary DNS server for lookups.

  • Use Case: Used to check propagation status to specific nameservers (e.g., 8.8.8.8, 1.1.1.1).
  • Outcome: Allows comparing DNS response differences between servers.
  • Limitations: If the specified server is unresponsive, the lookup fails.

Installation and Execution

Script Installation (Linux/macOS)

Install easily using the official installation script.

curl -sSfL https://raw.githubusercontent.com/mr-karan/doggo/main/install.sh | sh -s -- -b /usr/local/bin

# Verify installation
doggo --version

cargo (Rust Binary)

Can also be installed via cargo.

cargo install doggo-cli
doggo --version

macOS / Homebrew

Install with Homebrew.

brew install doggo

Practical Usage Examples

Basic DNS Lookup (A Record)

Look up the IPv4 address of a domain.

# Basic A record lookup
doggo example.com

# Simultaneous lookup of multiple records
doggo example.com A,AAAA,MX,TXT

Lookup via Specific Nameserver

Query a desired DNS server.

# Lookup via Cloudflare DNS
doggo example.com @1.1.1.1

# Lookup via Google DNS
doggo example.com @8.8.8.8

Lookup with JSON Output

Receive results in JSON format for use in scripts.

# Output in JSON format
doggo example.com MX --json

# Parse with jq
doggo example.com A --json | jq '.[0].data'

Private Lookup via DoH

Send encrypted queries via DNS over HTTPS.

# Use DoH
doggo example.com --short --https https://cloudflare-dns.com/dns-query

# Use DoT
doggo example.com --tls --resolver 1.1.1.1:853