Dog (echo dig |sed ’s/i/o/')
you know nslookup, dig, hosts, getenv and all the commans for the cli. but have you ever tried dog ?
Website: https://dns.lookup.dog/
and their Doku: https://dns.lookup.dog/dns-in-five-minutes
dog is an open-source DNS client for the command-line. It has colourful output, supports the DoT and DoH protocols, and can emit JSON.
Install Package
Examples
DNS over TLS
$ dog example.com --tls @dns.google
DNS Request over HTTPS
$ dog -H @https://dns.google/dns-query lookup.dog
A lookup.dog. 18m08s 51.159.26.255
Json Support
$ dog bsago.me --json | jq .responses[0].answers[0]
{
"address": "138.68.117.94",
"class": "IN",
"name": "bsago.me.",
"ttl": 7111,
"type": "A"
}
Full Help File
$ dog --help
dog ● command-line DNS client
Usage:
dog [OPTIONS] [--] <arguments>
Examples:
dog example.net Query a domain using default settings
dog example.net MX ...looking up MX records instead
dog example.net MX @1.1.1.1 ...using a specific nameserver instead
dog example.net MX @1.1.1.1 -T ...using TCP rather than UDP
dog -q example.net -t MX -n 1.1.1.1 -T As above, but using explicit arguments
Query options:
<arguments> Human-readable host names, nameservers, types, or classes
-q, --query=HOST Host name or IP address to query
-t, --type=TYPE Type of the DNS record being queried (A, MX, NS...)
-n, --nameserver=ADDR Address of the nameserver to send packets to
--class=CLASS Network class of the DNS record being queried (IN, CH, HS)
Sending options:
--edns=SETTING Whether to OPT in to EDNS (disable, hide, show)
--txid=NUMBER Set the transaction ID to a specific value
-Z=TWEAKS Set uncommon protocol-level tweaks
Protocol options:
-U, --udp Use the DNS protocol over UDP
-T, --tcp Use the DNS protocol over TCP
-S, --tls Use the DNS-over-TLS protocol
-H, --https Use the DNS-over-HTTPS protocol
Output options:
-1, --short Short mode: display nothing but the first result
-J, --json Display the output as JSON
--color, --colour=WHEN When to colourise the output (always, automatic, never)
--seconds Do not format durations, display them as seconds
--time Print how long the response took to arrive
Meta options:
-?, --help Print list of command-line options
-v, --version Print version information
Happy Dog !