如何在不使用 ping 或 bind-utils 的情况下从超薄主机(docker)获取远程主机 DNS 地址?

如何在不使用 ping 或 bind-utils 的情况下从超薄主机(docker)获取远程主机 DNS 地址?

如果我没有 ping,并且没有任何绑定实用程序(例如 dig、nslookup 等),如何获取远程主机 IP 地址?

我需要一个不包含“安装 X”或“使用 sidecar 容器”的答案。我正在寻找只依赖 bash 和基本 shell 命令的东西。

答案1

使用getent

$ getent hosts unix.stackexchange.com
151.101.193.69    unix.stackexchange.com  unix.stackexchange.com

答案2

在“现代”系统上,您可以使用systemd-resolve.

从其手册页:

systemd-resolve 可用于通过 systemd-resolved.service(8) 解析器服务来解析域名、IPv4 和 IPv6 地址、DNS 资源记录和服务。默认情况下,指定的参数列表将解析为主机名,检索其 IPv4 和 IPv6 地址。如果指定的参数格式为 IPv4 或 IPv6 操作,则执行相反的操作,并检索指定地址的主机名。

它会执行 DNS 查询,而 getentnsswitch.conf甚至可能不执行 DNS 查询。您还可以传递一个--type选项来访问任何类型的 DNS 记录类型。

相关内容