Ответы:
Есть несколько способов - вот два:
cat /etc/resolv.conf
-или-
scutil --dns
dig
или nslookup
не обязательно давать реалистичную картину того, как приложения macOS разрешают доменные имена из локальной системы, особенно когда было настроено несколько (специфичных для домена) DNS, например, при использовании VPN-клиента для нескольких одновременные соединения. Вместо nslookup
или dig
используйте dscacheutil -q host -a name somehostname.com
для проверки разрешения DNS. Он учитывает все настроенные DNS-серверы, а также их приоритетный порядок.
cat /etc/resolv.conf
больше не похоже на «надежное» решение. Это уведомление, которое я получаю в macOS High Sierra при его использовании: (извините за форматирование - комментарии не поддерживают простые разрывы строк) # Уведомление macOS # # Этот файл не используется для разрешения имени хоста DNS, разрешения адреса # или Механизм маршрутизации DNS-запросов, используемый большинством процессов в этой системе. # # Для просмотра конфигурации DNS, используемой этой системой, используйте: # scutil --dns
scutil --dns | grep nameserver
чтобы просто получить DNS - серверы.
Следующая команда оболочки может быть полезна для отображения текущих записей DNS:
grep nameserver <(scutil --dns)
Чтобы отфильтровать его для сценария, вы можете направить вывод в команду awk '{print $3}'
или grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+"
.
scutil --dns | grep nameserver
правильно (просто другой синтаксис)?
networksetup -getdnsservers
не работает для DNS-серверов, назначенных DHCP. Я всегда забываю оscutil
. «Sc» означает «Конфигурация системы»? Это точно не настраивает большую часть системы ...