I'm also interested in querying DNS servers from DHCP without using other information.

Dhcpcd might allow to query it (`dhcpcd -o domain_name_servers -T`

), but I couldn't find anything for dhclient.

Besides using a modified dhclient (see here on GitHub and here on Stack Overflow) or a test-client (as in this blog) or different scripts (see this on Stack Overflow) I found a powershell solution here on indented.co.uk.

This made me think of using "the basics" on Linux and I ended up with a crafted dhcp-request using `printf`

.

Some fields may be bogus (like mac aa:bb:cc:dd:ee:ff) but it contains options 53=0x35 (len 1 / value 1 = Request) and 55=0x37 (len 1 / value 6 for DNS).

For broadcasting socat is used:

```
printf "\x1\x1\x6\x0\xd3\x44\x33\xeb\x0\x0\x80\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\xaa\xbb\xcc\xdd\xee\xff\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x63\x82\x53\x63\x35\x01\x01\x37\x01\x06\xff" | socat - UDP4-DATAGRAM:255.255.255.255:67,broadcast
```

Simliar socat is used for receiving an reply

```
socat -u udp-recv:68,reuseaddr -
```

or

```
socat -u udp-recv:68 - | dd bs=1 skip=$( printf "%d" 0xec )
```

Using xxd I found what I was looking for...

`http://manpages.ubuntu.com/interfaces.5`

. – muru Jan 3 '15 at 2:59