主機名稱資訊的 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 => 不完整

相關內容