awl(1) # NAME awl - DNS lookup tool # SYNOPSIS *awl* [ _OPTIONS_ ] _name_ [ _@server_ ] [ _type_ ]++ where _name_ is the query to make (*example: froth.zone*)++ _@server_ is the server to query (*example: dns.froth.zone*)++ _type_ is the DNS resource type (*example: AAAA*) # DESCRIPTION *awl* (*a*wls *w*ant *l*icorice) is a simple tool designed to make DNS queries, much like the venerable _dig_(1). An awl is a tool used to make small holes, typically used in tannery (leatherworking). *awl* is designed to be a more "modern" version of _drill_(1) by including some more recent RFCs and output options. *awl* is still heavily Work-In-Progress so some features may get added or removed. # OPTIONS Dig-like +[no]flags are supported, see dig(1) *-D*, *--dnssec*, *+dnssec*++ Enable DNSSEC. This needs to be manually enabled. *-v* _value_++ Set verbosity (currently WIP) *-V*++ Print the version and exit. *-h*++ Show a "short" help message. ## Query Options *-4*++ Only make query over IPv4 *-6*++ Only make query over IPv6 *-p*, *--port* _port_++ Sets the port to query.++ ++ _Default Ports_: - _53_ for *UDP* and *TCP* - _853_ for *TLS* and *QUIC* - _443_ for *HTTPS* *-q*, *--query* _domain_++ Domain to query (eg. example.com) *-c*, *--class* _class_++ DNS class to query (eg. IN, CH) *-t*, *--qType* _type_++ DNS type to query (eg. A, NS) *--no-truncate*, *+ignore*++ Ignore UDP truncation (by default, awl _retries with TCP_) *--tcp*, *+tcp*, *+vc*++ Use TCP for the query (see _RFC 7766_) *--dnscrypt*, *+dnscrypt*++ Use DNSCrypt *-T*, *--tls*, *+tls*++ Use DNS-over-TLS, implies *--tcp* (see _RFC 7858_) *-H*. *--https*, *+https*++ Use DNS-over-HTTPS (see _RFC 8484_) *-Q*. *--quic*, *+quic*++ Use DNS-over-QUIC (see _RFC 9250_) *-x*, *--reverse*++ Do a reverse lookup. Sets default _type_ to PTR.++ *awl* automatically makes an IP or phone number canonical. *--timeout* _seconds_, *+timeout=*_seconds_++ Set the timeout period. Floating point numbers are accepted.++ 0.5 seconds is the minimum. *--retries* _int_, *+tries*=_int_, *+ retry*=_int_++ Set the number of retries.++ Retry is one more than tries, dig style ## DNS Flags *--aa=[false]*, *+[no]aaflag*++ (Set, Unset) AA (Authoritative Answer) flag *--ad=[false]*, *+[no]adflag*++ (Set, Unset) AD (Authenticated Data) flag *--tc=[false]*, *+[no]tcflag*++ (Set, Unset) TC (TrunCated) flag *-z=[false]*, *+[no]zflag*++ (Set, Unset) Z (Zero) flag *--cd=[false]*, *+[no]cdflag*++ (Set, Unset) CD (Checking Disabled) flag *--qr=[false]*, *+[no]qrflag*++ (Set, Unset) QR (QueRy) flag *--rd=[true]*, *+[no]rdflag*++ (Set, Unset) RD (Recursion Desired) flag *--ra=[false]*, *+[no]raflag*++ (Set, Unset) RA (Recursion Available) flag ## Output Display *--no-question*, *+noquestion*++ Do not display the Question section *--no-answer*, *+noanswer*++ Do not display the Answer section *--no-answer*, *+noanswer*++ Do not display the Answer section *--no-authority*, *+noauthority*++ Do not display the Authority section *--no-additional*, *+noadditional*++ Do not display the Additional section *--no-statistics*, *+nostats*++ Do not display the Statistics (additional comments) section ## Output Formats *-j*, *--json*, *+json*++ Print the query results as JSON. *-X*, *--xml*, *+xml*++ Print the query results as XML. *-y*, *--yaml*, *+yaml*++ Print the query results as YAML. *-s*, *--short*, *+short*++ Print just the address of the answer. # EXAMPLES ``` awl grumbulon.xyz -j +cd ``` Run a query of your local resolver for the A records of grumbulon.xyz, print them as JSON and disable DNSSEC verification. ``` awl +short example.com AAAA @1.1.1.1 ``` Query 1.1.1.1 for the AAAA records of example.com, print just the answers ``` awl -xT PTR 8.8.4.4 @dns.google ``` Query dns.google over TLS for the PTR record to the IP address 8.8.4.4 # SEE ALSO _drill_(1), _dig_(1), the many DNS RFCs