Ethernet shield permanently returning 0.0.0.0 after working for a few hours

Thanks. Here is my loop code. WATCHDOG_ENABLE is set to true. Basically I see this message "WATCHDOG connection failed" on the Arduino IDE every 5 to 40 minutes. My server also keeps track of any heartbeat interval that is longer than 3 seconds. The server record matches the printout on the Arduino IDE. I will try increasing the heartbeat interval to see if it makes any difference.

void loop()
{
//reset watchdog
if(WATCHDOG_ENABLE)
{
Serial.print("*");
if (client.connect(server, 80))
{
Serial.print("+");
String myString = "GET /watchdog.php?ip=";
myString += String(ip[0]) + "." + String(ip[1]) + "." + String(ip[2]) + "." + String(ip[3]) + ".";
myString += " HTTP/1.0";
client.println(myString); //php page invoking my web service
client.println();

//Connected - Read the page
String pageValue = readPage(); //go and read the output
httpParse(pageValue);
}
else
{
Serial.println("WATCHDOG connection failed");
}
}

delay(1000);
}