My test worked. I used a modification of the DhcpAddressPrinter sketch.
#include <SPI.h>
#include <Ethernet.h>
#include <Dns.h>
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };
// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;
void setup() {
// start the serial library:
Serial.begin(9600);
pinMode(4,OUTPUT);
digitalWrite(4,HIGH);
// start the Ethernet connection:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
for(;;)
;
}
// print your local IP address:
Serial.print("My IP address: ");
for (byte thisByte = 0; thisByte < 4; thisByte++) {
// print the value of each byte of the IP address:
Serial.print(Ethernet.localIP()[thisByte], DEC);
Serial.print(".");
}
Serial.println();
DNSClient dns;
IPAddress remote_addr;
Serial.print("Google is ");
dns.begin(Ethernet.dnsServerIP());
dns.getHostByName("www.google.com",remote_addr);
Serial.println(remote_addr);
}
void loop() {
}
I also had to build the Arduino software from the github source to get the DNS functions to work. Both the Windows and linux-64bit downloads would return 0.0.0.0. Once I built the software from source the same code worked.