Эквивалент Mac OS X Terminal для информации об имени хоста

Эквивалент Mac OS X Terminal для информации об имени хоста

В Linux, используя Bash Terminal, я могу сделать следующее:

  • hostname -dдля отображения имени домена DNS и
  • hostname -iдля отображения сетевого адреса(ов) имени хоста.

Как можно получить ту же информацию — желательно с помощью одной команды (с опциями, если необходимо) и без повышения привилегий — из терминала Bash в Mac OS X?

Для справки, вот версия Bash, которую я использую в Mac OS X:

  • GNU bash, версия 3.2.57(1)-релиз (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

Используйте 'dig'. Поиск команд, похожих на whois

имя хоста dig => оба имени хоста + ipaddy

dig ip.address => не такой полный

Связанный контент