主机名信息的 Mac OS X 终端等效项

主机名信息的 Mac OS X 终端等效项

在 Linux 中,使用 Bash 终端,我可以执行以下操作:

  • hostname -d显示 DNS 域的名称,以及
  • hostname -i显示主机名的网络地址。

如何从 Mac OS X 中的 Bash 终端检索相同的信息 - 最好使用单个命令(如果需要,可以使用选项),而无需提升权限?

作为参考,这里是我在 Mac OS X 中使用的 Bash 版本:

  • GNU bash,版本 3.2.57(1)-release (x86_64-apple-darwin15) 。

答案1

对于hostname -d,使用hostname -f

hostname -f | sed -e 's/^[^.]*\.//'

对于 IP 地址,请使用ifconfig -a(查找inet数据)。您的机器可能只有一个网络设备,en0所以您可以这样做

ifconfig en0 |awk '/inet / {print $2; }'

如果您对所有网络设备感兴趣,请记住ifconfig -l列出了这些设备。这列出了设备及其对应的地址:

#!/bin/sh
for name in $(ifconfig -l)
do
    ifconfig $name |awk -v name=$name '/inet / {printf "%s: %s\n", name, $2; }'
done

进一步阅读:

答案2

我在用

scutil --dns | grep 'search domain' | head -n 1 | grep -o '[a-zA-Z0-9.-]\+$'

这似乎在某些情况下工作得更好,但是 YMMV。我在我的个人资料中将此设置为别名(仅适用于 mac),该dnsdomainname别名可在 Linux 上使用(代替hostname -d)。

答案3

ipconfig getifaddr $(route get 8.8.8.8 | awk '/interface: / {print $2; }')

答案4

用“挖”。搜索类似于 whois 的命令

dig 主机名 => 主机名 + ipaddy

dig ip.address => 不完整

相关内容