Odpowiedzi:
nslookup
, host
i dig
są doskonale dobrymi narzędziami do zapytań DNS w OS X, ale wszystkie one odpytują DNS bezpośrednio, zamiast przechodzić przez wewnętrzny system rozpoznawania OS X. W rezultacie nie sprawdzają pliku / etc / hosts ani nie rozpoznają nazw Bonjour / mDNS (tych, które kończą się na .local). Standardowym (szybkim i brudnym) sposobem na przetestowanie rozdzielczości jest użycie ping
, ponieważ rozwiąże ona adres podany przez zwykły system przed próbą pingowania. Jeśli chcesz czegoś przeznaczonego do tego celu, użyj dscacheutil
zamiast tego:
$ 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
Każde polecenie działa dobrze. To, że nie używa metod OS X, nie oznacza, że nie działa. Jeśli chcesz użyć „metod OS X”, czy mogę polecić Narzędzie sieciowe?
Może to nadal wywoływać whois i wyświetlać je w oknie.
.local
adresy, prawda?