Get DNS Server IP Addresses from the Command Line in Mac OS X
You can quickly retrieve active DNS server IP addresses on any Mac by using the networksetup utility. This is done from the command line, so launch the Terminal app and type one of the following command strings, dependent on the version of OS X that is running on the Mac.
Retrieving DNS details from Terminal in new versions of OS X including in Mac OS X 10.7 Lion, OS X 10.8 Mountain Lion, 10.9 Mavericks, and later, is done with the following networksetup syntax:
networksetup -getdnsservers Wi-Fi
Getting DNS info from the command line in prior versions of OS X, like Mac OS X 10.6 Snow Leopard, 10.5, and before, use the following syntax instead:
networksetup -getdnsservers airport
Note that I’m specifying “Wi-Fi” or ‘airport’ in these example strings because I primarily use a wireless connection, but you could also specify ethernet and bluetooth to get the DNS details for those interfaces. Just replace the latter interface text with the interface you are looking to identify DNS IP information for, typically it’s the same for every interface on the computer.
Assuming there are several DNS servers set within Mac OS X’s networking preferences, you will see a report of each DNS server in the order of their priority, looking something like this:
For those wondering, the top most DNS IP in that sample list is Google’s Public DNS, the next two are from OpenDNS, with the last being a local router. If you need to, you can use a free utility like namebench to find a fast DNS server.
Additionally, you can retrieve DNS information by using the ‘nslookup’ command on a server, this will report back the remote servers DNS details, as well as your own primary DNS to resolve the other server:
This will report back something like the following, with the first “Server” and “Address” bit showing the DNS IP used by the local machine:
$ nslookup google.com
Finally, another option is to look at /etc/resolv.conf, but because that file is automatically generated, it is not always considered accurate if DNS has recently changed and has not yet been flushed.