如果我没有 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 记录类型。