doge is a command-line DNS client, like dig
forked from the amazing work done here. It has colourful output, understands normal command-line argument syntax, supports the DNS-over-TLS and DNS-over-HTTPS protocols, and can emit JSON. I believe this is an amazing project and should be improved on.
doge example.net
Query a domain using default settingsdoge example.net MX
...looking up MX records insteaddoge example.net MX @1.1.1.1
...using a specific nameserver insteaddoge example.net MX @1.1.1.1 -T
...using TCP rather than UDPdoge exapple.net MX @1.1.1.1 -p 69
...using a nonstandard portdoge -q example.net -t MX -n 1.1.1.1 -T
As above, but using explicit arguments
<arguments>
Human-readable host names, nameservers, types, or classes-q, --query=HOST
Host name or domain name 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-p, --port=PORT
Port options for sending queries on nonstandard ports--class=CLASS
Network class of the DNS record being queried (IN, CH, HS)
--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
-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
-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
Cargo: cargo install dns-doge
ArchLinux: yay -S dns_doge
Ubuntu/Debian: Comming Soon
RHEL/Fedora/Cenos: Publishing rpm
To build the container image of doge, you can use Docker or Podman. Here an example using Docker:
$ docker build -t doge .
You can then run it using the following command:
$ docker run -it --rm doge
To run doge directly, you can then define the following alias:
$ alias doge="docker run -it --rm doge"
I am not a Rust expert at all, Honestly I'm the opposite, just learning coding. I used dog on my Arch system and a few random *nix Laptops that I perpetually fix and break. As such parts of maintaining and improving this project will be outside of my understanding. Learning packaging, docker stuff and CI/CD. I'm too broke for a mac book, and currently refuse to install windows 10/11, Small fixes and improvements I'll try to fix timely but major things especially on my non target machines might take awhile - forever to fix ( please drop a PR ) in those cases :).
I will make a website at some point... for the time being nothing to drastic has changed from the dog website