doggo: A Modern Command-line DNS Client for Humans

Summary
doggo is a powerful and user-friendly command-line DNS client, built with Golang. It aims to simplify DNS lookups and troubleshooting by providing clear, human-readable output, unlike traditional tools. Inspired by the Rust 'dog' client, doggo extends its capabilities with a focus on modern DNS protocols and ease of use.
Repository Info
Introduction
doggo is a powerful and user-friendly command-line DNS client, built with Golang. It aims to simplify DNS lookups and troubleshooting by providing clear, human-readable output, unlike traditional tools. Inspired by the dog client written in Rust, doggo extends its capabilities with a focus on modern DNS protocols and ease of use.
Installation
doggo offers multiple convenient installation methods across various platforms.
The recommended approach is using the easy install script:
curl -fsSL https://raw.githubusercontent.com/mr-karan/doggo/main/install.sh | sh
Alternatively, you can install doggo via popular package managers like Homebrew, MacPorts, Arch Linux (yay), Scoop, and Winget. Go users can also install it directly using go install github.com/mr-karan/doggo/cmd/doggo@latest. Docker images are also available for containerized environments.
For a comprehensive guide and more options, including pre-compiled binaries, visit the official installation documentation.
Examples
Getting started with doggo is straightforward. Here are a few common use cases:
# Simple DNS lookup
doggo example.com
# Query MX records using a specific nameserver
doggo MX github.com @9.9.9.9
# Use DNS over HTTPS
doggo example.com @https://cloudflare-dns.com/dns-query
# JSON output for scripting
doggo example.com --json | jq '.responses[0].answers[].address'
# Reverse DNS lookup
doggo --reverse 8.8.8.8 --short
These examples showcase doggo's flexibility for various DNS queries.
Why Use doggo?
doggo stands out with its focus on user experience and modern features. It provides human-readable, color-coded, and tabular output, making DNS responses easy to understand. For automation, it offers robust JSON output.
A key strength is its support for multiple transport protocols, including DoH (DNS over HTTPS), DoT (DNS over TLS), DoQ (DNS over QUIC), TCP, UDP, and DNSCrypt. This versatility makes it an invaluable tool for network professionals and developers alike.
Additional features like EDNS support, Internationalized Domain Names (IDN), shell completions, and cross-platform compatibility further enhance its utility, making doggo a comprehensive replacement for traditional DNS clients.
Links
Explore doggo further through these official resources: