Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I know they're defined in /etc/resolv.conf, but what if it's not there? And more specifically, how do you find the DNS server returned by DHCP?

In GNOME you can use the NetworkManager applet to see the primary DNS for any connection, so how would you do the same from the command line?

share|improve this question
add comment

6 Answers

up vote 12 down vote accepted

Usually dhclient.leases file is located at /var/lib/dhcp3/dhclient.leases, type the following command:

less /var/lib/dhcp3/dhclient.leases

OR

cat /var/lib/dhcp3/dhclient.leases

OR

You can just use grep command to get DHCP server address, enter:

grep dhcp-server-identifier /var/lib/dhcp3/dhclient.leases

OR

dhclient eth0

share|improve this answer
    
Great, thanks! In case anybody looks for this, the IPCop file is found on /var/ipcop/dhcpc/dhcpcd-*.info –  Ivan Sep 17 '09 at 18:56
    
This is specific of one DHCP client but there are others (such as pump). –  bortzmeyer Sep 18 '09 at 7:06
add comment

I found my DHCP lease info at /var/lib/dhclient/dhclient-eth0.leases in case anyone can't find it at /var/lib/dhcp3/dhclient.leases

share|improve this answer
add comment

well, why not simply dig that?

marcus@marcus ~ $ dig google.de

; <<>> DiG 9.4.3-P3 <<>> google.de
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27579
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 6, ADDITIONAL: 0

;; QUESTION SECTION:
;google.de. 		IN	A

;; ANSWER SECTION:
google.de.  	1785	IN	A	209.85.229.104
google.de.  	1785	IN	A	216.239.59.104
google.de.  	1785	IN	A	74.125.77.104

;; AUTHORITY SECTION:
de. 		23431	IN	NS	L.DE.NET.
de. 		23431	IN	NS	Z.NIC.de.
de. 		23431	IN	NS	F.NIC.de.
de. 		23431	IN	NS	C.DE.NET.
de. 		23431	IN	NS	S.DE.NET.
de. 		23431	IN	NS	A.NIC.de.

;; Query time: 1 msec
;; SERVER: 192.168.1.15#53(192.168.1.15)
;; WHEN: Thu Sep 17 19:33:39 2009
;; MSG SIZE  rcvd: 181

look at the last lines: ;; SERVER: 192.168.1.15#53(192.168.1.15)

share|improve this answer
    
I was thinking the same thing originally, but I don't that that would show ALL of the assigned DNS servers, would it? I think dig only returns the one it used for that particular lookup. On second look, the poster didn't specify so if he's happy with it then your answer is definitely the easiest. :-) –  KPWINC Sep 17 '09 at 17:40
    
yes you are right output only shows up the dns used by that query... so you can see what is really happening. I found your solution fine to figure out what should happen, thy for that :-) –  Marcus Spiegel Sep 17 '09 at 17:45
    
That wasn't exactly what I was looking for, but thanks anyway. –  Ivan Sep 17 '09 at 18:57
1  
When no DNS server responds, dig doesn't show any useful info, is it possible to make it spit out the DNS servers it tried to ask? –  Ivan Sep 17 '09 at 18:58
    
So after RingTFM, I see it just uses whatever is on /etc/resolv.conf –  Ivan Sep 17 '09 at 19:07
add comment

If there is nothing in /etc/resolv.conf, DNS resolution (that is, resolution using dns as defined in /etc/nsswitch.conf) will not work. This is what dig, host and the libc routines use to do DNS resolution. If there is nothing specified in this file, DNS resolution will not work (though host resolution may work via other means, if another host resolution method is configured, such as NIS (this is unlikely)).

share|improve this answer
add comment

Read /etc/resolv.conf. That's all.

man resolv.conf is useful, too.

share|improve this answer
    
except he said what to do if it's not there.. –  warren Sep 23 '09 at 6:01
1  
Yes, but I ignored this point, which makes no sense. Since the libc resolver uses resolv.conf, it has to be there. –  bortzmeyer Sep 23 '09 at 7:08
    
Guyz tell me please how to get list of leased IP by LINUX DHCP server any flavor? without running any kind of script on Server rather accessing it through C#. Like in case of Microsoft DHCP server. –  AZ_ Oct 20 '10 at 7:35
add comment

I recently had this problem where my dhcpcd was misconfigured as was not setting DNS servers. I found out that I can query which nameservers are available by DHCP with the following command:

sudo dhcpcd -o domain_name_servers -T

The command will output a bunch of network connection information. Look for the line beginning with new_domain_name_servers.

From here I was able to manually set the nameservers.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.