Каков предпочтительный метод поиска имени домена в командной строке (DNS)?


11

Какую команду командной строки я использую для поиска адреса домена?

Просматривая справочные страницы для nslookup и dig, я вижу раздел, в котором говорится, что эти утилиты не используют методы поиска имен в Mac OS.

Итак, какую команду я должен запустить?

Ответы:


25

nslookup, hostИ digвполне хорошие инструменты запросов DNS в OS X, но все они запрос DNS непосредственно , а не через внутреннюю систему разрешения OS X в. В результате они не проверяют файл / etc / hosts и не разрешают имена Bonjour / mDNS (заканчивающиеся на .local). Стандартный (быстрый и грязный) способ проверки разрешения заключается в использовании ping, поскольку он разрешает адрес, который вы даете ему, через обычную систему, прежде чем пытаться пропинговать его. Если вы хотите что-то предназначенное для этой цели, используйте dscacheutilвместо этого:

$ dscacheutil -q host -a name www.apple.com
name: e3191.c.akamaiedge.net
alias: www.apple.com www.isg-apple.com.akadns.net www.apple.com.edgekey.net 
ip_address: 184.24.141.15

$ ping www.apple.com
PING e3191.c.akamaiedge.net (184.24.141.15): 56 data bytes
64 bytes from 184.24.141.15: icmp_seq=0 ttl=57 time=57.258 ms
^C
--- e3191.c.akamaiedge.net ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 57.258/57.258/57.258/0.000 ms

Престижность. Я подал радару, что справки должны быть более ясными по этому вопросу
Sören Kuklau

Одна проблема с использованием dscacheutil для поиска заключается в том, что если он не может разрешить имя хоста, он не завершается с ненулевым кодом возврата, как хост.
gurple

Чтобы преодолеть отсутствие полезных кодов возврата, я создал самый простой сценарий оболочки, дополняющий стандартную команду host. #!/usr/bin/env bash STAT=1 LOOKUPRESULT="$(dscacheutil -q host -a name "$1")" if [ -z "$LOOKUPRESULT" ] ; then exit "$STAT" else echo "$LOOKUPRESULT" STAT=0 exit "$STAT" fi
gurple

4

Любая команда работает нормально. Тот факт, что он не использует методы OS X, не означает, что он не работает. Если вы хотите использовать «методы OS X», могу ли я порекомендовать Network Utility?

введите описание изображения здесь

Это может все еще вызвать whois и просто отобразить это в окне.


Я думаю, это не работает для .localадресов, не так ли?
Петр Финдейзен

Нет, это не будет работать для .local адресов. При этом используется общедоступный сервер whois, и адреса .local там не будут публиковаться.
Эверетт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.