Я хочу отобразить DNS-серверы, которые используются текущими настройками сети в OS X, из командной строки.
command-line
dns
Сорин
источник
источник
networksetup -getdnsservers
не работает для DNS-серверов, назначенных DHCP. Я всегда забываю оscutil
. «Sc» означает «Конфигурация системы»? Это точно не настраивает большую часть системы ...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 --dnsscutil --dns | grep nameserver
чтобы просто получить DNS - серверы.Следующая команда оболочки может быть полезна для отображения текущих записей DNS:
Чтобы отфильтровать его для сценария, вы можете направить вывод в команду
awk '{print $3}'
илиgrep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+"
.источник
scutil --dns | grep nameserver
правильно (просто другой синтаксис)?