4 releases (2 breaking)
0.2.0 | Jun 29, 2019 |
---|---|
0.1.1 | Nov 20, 2018 |
0.1.0 | Nov 17, 2018 |
0.0.0 | Nov 17, 2018 |
#13 in #exit-code
10KB
232 lines
alookup
Lookup IPv4 and IPv6 addresses for a hostname. Only prints addresses on
stdout
(one per line), errors to stderr
, and hard errors can be
detected through inspecting the exit code.
It uses the resolv
crate (specifically the query
method), which
uses libresolv.so
which is typically configured via /etc/resolv.conf
to do DNS resolution.
Install
Install from crates.io
with
cargo install alookup
.
Using it
Examples
alookup mail.google.com
Usage
alookup [FLAGS] <NAME>
FLAGS:
-4 Query only IPv4 records (A)
-6 Query only IPv6 records (AAAA)
-s, --sort Sort (and deduplicate) addresses
-h, --help Prints help information
-V, --version Prints version information
ARGS:
<NAME> Name to lookup
Exit codes
0
: success (orNODATA
). You might want to treat an empty address set (no output) as failure too (similar toNXDOMAIN
).1
: name not found (NXDOMAIN
). If an empty address set is ok for you, you might want to ignore this exit code.2
:SRVFAIL
, timeouts, failed parsing response, generic resolver failure...3
: failed parsing a specific answer record (might have printed partial result, but breaks on first broken record)
Other exit codes should be treated as failures too; a non-zero exit code
always should show an error on stderr
, and every time an error is
printed to stderr
there should be a non-zero exit code.
Dependencies
~2MB
~29K SLoC