Mac OS 命令在 Linux 上解析像“getent”这样的主机名

use*_*708 12 osx hostname mdns

我想要一个将主机名解析为 IP 地址的命令,就像普通程序解析主机名一样。换句话说,它必须考虑到 mDNS ( .local) 和/etc/hosts,以及常规 DNS。因此排除了hostdignslookup,因为所有这三个工具都只使用常规 DNS 并且不会解析.local地址。

在 Linux 上,该getent命令完全符合我的要求。但是,getent在 OS X 上不存在。

是否有 Mac OS X 等价物getent?我知道我可以在几行中使用 写一个,getaddrinfo如果必须的话我会这样做,但我只是想知道是否已经有一个标准命令可以做到这一点。

谢谢!

小智 14

我想dscacheutil这就是你要找的。它支持缓存、/etc/hosts、mDNS(用于 .local)。

dscacheutil -q host -a name foo.local
Run Code Online (Sandbox Code Playgroud)

另一种选择是 dns-sd

dns-sd -q foo.local
Run Code Online (Sandbox Code Playgroud)

有关 dnscacheutil 的更多信息