s6-dns: the s6-dnsip program
Keywords: s6-dns client s6-dnsip dnsip s6-dnsip6 s6-dnsip4 domain name ip address ipv6 ipv4

s6-dns
Software
skarnet.org

# The s6-dnsip program

s6-dnsip finds both the IPv6 and IPv4 addresses associated to a domain name.

## Interface

         s6-dnsip [ -q ] [ -H | -h ] [ -r ] [ -t timeout ] domain

- s6-dnsip makes both an A and an AAAA query for the name domain, in parallel. It waits for the results and prints the obtained addresses, one per line, then exits 0.
- If the domain exists but no relevant field has been found, it exits 1.
- If the DNS answered but no answer is available, it prints a relevant error message and exits 2.
- By default, s6-dnsip looks for DNS cache addresses in the `/etc/resolv.conf` file. If the DNSCACHEIP environment variable is set and contains a list of IP (v4 or v6) addresses, separated by commas, semicolons, spaces, tabs, newlines or carriage returns, then this list is used instead.

## Options

- `-q` : qualify. Qualifies domain before resolution, according to suffixes found in `/etc/resolv.conf`. If the DNSQUALIFY environment variable is set and contains a list of suffixes separated by spaces, tabs, newlines or carriage returns, then this list is used instead. By default, no qualification is used: if domain is not a FQDN, a dot is just appended to it.
- `-H` : do not use data from `/etc/hosts`. This is the default.
- `-h` : use data from `/etc/hosts`, if available. If there's a compiled `/etc/hosts.cdb` file that is newer than `/etc/hosts`, it will be used instead. (See s6-dns-hosts-compile for details.) If the lookup in the hosts database returns at least one result, then no DNS lookup is performed.
- `-r` : random. By default, the program does not sort the result, but prints them in the order received from the DNS. With this option, it performs a random permutation on the results before printing them.
- `-t` timeout : if the resolution takes more than timeout milliseconds, then it exits 99 right away with an error message. By default, timeout is 0, which means no timeout.

## Notes

Even if the underlying skalibs has been compiled without IPv6 support, or IPv6 DNS transport is unavailable for any reason, s6-dnsip will still return IPv6 addresses if the AAAA query has a positive result.