What is the preferred method of command line domain name lookup (DNS)?
nslookup
, host
, and dig
are perfectly good DNS query tools in OS X, but they all query DNS directly rather than going through OS X's internal resolution system. As a result, they don't check the /etc/hosts file, or resolve Bonjour/mDNS names (those ending in .local). The standard (quick 'n dirty) way to test resolution is to use ping
, since it'll resolve the address you give it through the usual system before attempting to ping it. If you want something intended for the purpose, use dscacheutil
instead:
$ 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
Either command works fine. Just because it's not using OS X's methods doesn't mean that it doesn't work. If you want to use "OS X methods" may I recommend Network Utility?
This may still call whois and just display it in the window.