Як я можу відобразити поточні сервери DNS з командного рядка в ОС X?


50

Я хочу відобразити з командного рядка сервери DNS, які використовуються поточними налаштуваннями мережі в OS X.

Відповіді:


72

Є кілька способів - ось два:

cat /etc/resolv.conf

або

scutil --dns

1
Це надзвичайно дратує те, networksetup -getdnsserversщо не працює для призначених DHCP DNS-серверів. Я завжди про це забуваю scutil. 'Sc' означає Конфігурація системи? Він точно не налаштовує велику частину системи ...
Джефф Ніксон

1
Також добре зазначити, що digабо nslookupне обов'язково давати реалістичну картину того, як додатки macOS вирішують доменні імена з локальної системи, особливо коли налаштовано кілька (для домену) DNS, наприклад, при використанні VPN-клієнта для декількох одночасні з'єднання. Замість nslookupабо digвикористовуйте dscacheutil -q host -a name somehostname.comдля тестування роздільної здатності DNS. Він враховує всі налаштовані сервери DNS, а також їх пріоритетний порядок.
Віль

3
cat /etc/resolv.confвже не здається "надійним" рішенням. Це повідомлення, яке я отримую в macOS High Sierra при його використанні: (вибачте за форматування - коментарі не підтримують прості розриви рядків). Механізм маршрутизації запитів DNS, який використовується більшості процесів у цій системі. # # Щоб переглянути конфігурацію DNS, яку використовує ця система, використовуйте: # scutil --dns
PatrikN

Я хотів , scutil --dns | grep nameserverщоб просто отримати DNS - сервери.
SamAndrew81

2

Наступна команда оболонки може бути корисною для переліку поточних записів DNS:

grep nameserver <(scutil --dns)

Щоб відфільтрувати його за сценарієм, ви можете передати висновок у awk '{print $3}'або grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+"командувати.


2
Це те саме, що scutil --dns | grep nameserverправильно (просто різний синтаксис)?
SamAndrew81
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.