Відповіді:
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
#!/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
Будь-яка команда працює чудово. Тільки тому, що він не використовує методи OS X, не означає, що він не працює. Якщо ви хочете скористатися "методами OS X", чи можу я порекомендувати Network Utility?
Це все ще може викликати whois і просто відображати його у вікні.
.local
адрес, чи не так?