LinuxCommandLibrary

doggo

There is no standard Linux command "doggo"

TLDR

Perform a simple DNS lookup

$ doggo [example.com]
copy

Query MX records using a specific nameserver
$ doggo MX [codeberg.org] @[1.1.1.2]
copy

Use DNS over HTTPS
$ doggo [example.com] @[https://dns.quad9.net/dns-query]
copy

Output in the JSON format
$ doggo [example.com] [[-J|--json]] | jq '[.responses[0].answers[].address]'
copy

Perform a reverse DNS lookup
$ doggo [[-x|--reverse]] [8.8.4.4] --short
copy

SYNOPSIS

doggo [OPTIONS] [@SERVER] <NAME> [TYPE]

PARAMETERS

-4, --ipv4
    Shortcut for A record (IPv4)

-6, --ipv6
    Shortcut for AAAA record (IPv6)

-a, --axfr
    Perform AXFR (zone transfer)

-c, --class CLASS
    DNS class, e.g., IN, CH (default: IN)

-C, --tcp
    Use TCP protocol (default: UDP)

-d, --debug
    Enable debug logging

-n, --nsid NSID
    EDNS NSID (hex string)

-p, --port PORT
    Custom port (default: 53)

-r, --recurse
    Set recursion desired (RD) flag

-T, --trace
    Trace delegation path

-t, --type TYPE
    Resource record type, e.g., MX, TXT

-u, --udp
    Use UDP protocol

-v, --version
    Print version

-h, --help
    Show help

DESCRIPTION

Doggo is a lightweight, high-performance command-line DNS resolver written in Go. It serves as a modern alternative to verbose tools like dig, offering quick lookups for common record types such as A, AAAA, MX, TXT, NS, and more. Key strengths include minimal output by default, support for IPv4/IPv6 shortcuts, AXFR requests, delegation tracing, and EDNS options like NSID. Users specify a nameserver with @server, query type optionally, and leverage flags for protocol (UDP/TCP), recursion, class, port, and debug logging. Ideal for scripting, troubleshooting, or daily DNS checks, doggo prioritizes speed and simplicity without sacrificing essential features. It's actively maintained on GitHub and installable via Go or packages on major distros.

CAVEATS

Not installed by default; requires manual installation. UDP queries may truncate large responses unless TCP is used. Limited to basic DNS features compared to full-featured tools like dig.

INSTALLATION

Via Go: go install github.com/onsdigital/doggo@latest
Arch: pacman -S doggo
Debian/Ubuntu: available in some repos or build from source.

EXAMPLES

doggo example.com (A record)
doggo @8.8.8.8 -t MX google.com (MX via Google DNS)
doggo -4 -6 example.com (both IPv4/IPv6)
doggo -T example.com (trace delegation)

HISTORY

Developed by Daniel Cornell in 2020 as a Go-based DNS tool for simplicity and speed. First released on GitHub (onsdigital/doggo), it gained popularity for its minimalism. Actively maintained with regular updates for new features like EDNS support.

SEE ALSO

dig(1), host(1), nslookup(1), drill(1)

Copied to clipboard