How to get remote host DNS address from a super-slim host (docker) without ping or bind-utils?
How do I get a remote host IP address if I don’t have ping, and don’t have any bind utilities like dig, nslookup, etc?
I need an answer that does not include ‘install X’ or ‘use sidecar container’. I am looking for something that relies on nothing more than bash and the basic shell commands.
$ getent hosts unix.stackexchange.com 188.8.131.52 unix.stackexchange.com unix.stackexchange.com
On a “modern” system, you can use
From its man page:
systemd-resolve may be used to resolve domain names, IPv4 and IPv6
addresses, DNS resource records and services with the
systemd-resolved.service(8) resolver service. By
default, the specified list of parameters will be resolved as hostnames, retrieving their IPv4 and IPv6 addresses. If the parameters
specified are formatted as IPv4 or
IPv6 operation the reverse operation is done, and a hostname is retrieved for the specified addresses.
It will do DNS, whereas getent, depending on
nsswitch.conf may not even do DNS queries.
You can also pass a
--type option to have access to any kind of DNS record type.