5 releases
0.2.8 | Dec 4, 2024 |
---|---|
0.2.7 | May 8, 2024 |
0.2.6 | Apr 19, 2024 |
0.2.5 | Feb 22, 2024 |
#791 in Command line utilities
207 downloads per month
315KB
2.5K
SLoC
DOGE
Doge can look up!
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.
Examples
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
Command-line options
Query options
<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)
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
Installation
Current and Upcoming packages
Cargo: cargo install dns-doge
ArchLinux: yay -S dns_doge
Ubuntu/Debian: Comming Soon
RHEL/Fedora/Cenos: Publishing rpm
Docker/Podman
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:
<code>$ alias doge="docker run -it --rm doge"</code>
Notes
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 :).
Website
I will make a website at some point... for the time being nothing to drastic has changed from the dog website
Dependencies
~2–17MB
~189K SLoC