如何在 OS X 上将内部 IP 地址解析为主机名?

bar*_*oon 7 networking terminal command-line macos

我正在尝试将像 192.168.204.194 这样的 IP 地址解析为像“JohnsMac”这样的计算机名称。我希望能够获取我知道的内部 IP 地址的本地机器名称。

什么命令将返回 OS X 上的机器名称?

que*_*eso 11

试试nslookup

#: nslookup 192.168.204.194
Run Code Online (Sandbox Code Playgroud)

这要求您将 nslookup 指向一个知道如何进行此解析的 DNS 服务器。在我的个人网络中,我使用我的DD-WRT路由器作为 DNS 中继,并将其设置为解析对内部网络(192.168.xx 网络)上主机的请求。

我能想到的另一件事是编辑位于以下位置的文件:

#: /etc/hosts
Run Code Online (Sandbox Code Playgroud)

你必须是 root 才能编辑它。然后你通过运行来刷新你的 DNS 缓存:

#: sudo dscacheutil -flushcache
Run Code Online (Sandbox Code Playgroud)

这将在 Mac 本地将 IP 地址解析为主机名,反之亦然,因此不需要 DNS 服务器。有一些大的警告到如何工作,但这样阅读手册页hosts文件

#: man hosts
Run Code Online (Sandbox Code Playgroud)

由于 'nslookup' 和 'host' 命令忽略了 hosts 文件,因此您必须使用其他命令来使用 hosts 文件进行解析,例如:

#: traceroute foo.com
Run Code Online (Sandbox Code Playgroud)

或者

#: dscacheutil -q host -a ip_address 1.2.3.4
Run Code Online (Sandbox Code Playgroud)