Odpowiedzi:
Istnieje kilka sposobów - oto dwa:
cat /etc/resolv.conf
-lub-
scutil --dns
dig
ani nslookup
nie muszą dać realistyczny obraz tego, jak nazwy domen aplikacji MacOS postanowienie z systemu lokalnego, zwłaszcza gdy zostały skonfigurowane wielokrotne (specyficzne dla domeny) DNSes, takie jak przy użyciu klienta VPN dla wielokrotności jednoczesne połączenia. Zamiast nslookup
lub dig
użyj dscacheutil -q host -a name somehostname.com
do przetestowania rozdzielczości DNS. Bierze pod uwagę wszystkie skonfigurowane serwery DNS, a także ich kolejność priorytetów.
cat /etc/resolv.conf
nie wydaje się już „niezawodnym” rozwiązaniem. To jest powiadomienie, które otrzymuję w macOS High Sierra podczas jego używania: (przepraszam za formatowanie - komentarze nie obsługują prostych podziałów linii) # powiadomienie macOS # # Ten plik nie jest sprawdzany w celu rozpoznania nazwy hosta DNS, adresu # rozdzielczości lub Mechanizm routingu zapytań DNS używany przez większość # procesów w tym systemie. # # Aby wyświetlić konfigurację DNS używaną przez ten system, użyj: # scutil --dns
scutil --dns | grep nameserver
po prostu dostać serwery DNS.
Następujące polecenie powłoki może być przydatne do wyświetlenia bieżących wpisów DNS:
grep nameserver <(scutil --dns)
Aby odfiltrować go dla skryptu, możesz przesłać dane wyjściowe do awk '{print $3}'
lub grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+"
polecenia.
scutil --dns | grep nameserver
poprawna (tylko inna składnia)?
networksetup -getdnsservers
nie działa na serwerach DNS przypisanych do DHCP. Zawsze o tym zapominamscutil
. „Sc” oznacza konfigurację systemu? Na pewno nie konfiguruje dużej części systemu ...