
在 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 => 不完整