"Request timed out" is the response you should get if the shield did not initialize correctly.
"No route to host" is the message when there is no interface (add: in the router) with that subnet routed through it. That is router talk for "I don't know where that subnet is".
How are you setting the Arduino? Are you assigning a static ip or using dhcp to get an ip? If you are using dhcp, you should use code something like this:
void setup()
{
Serial.begin(9600);
// disable the SD SPI interface.
// this will interfere with the dhcp call if not disabled
pinMode(4,OUTPUT);
digitalWrite(4,HIGH);
pinMode(5,OUTPUT);
digitalWrite(5,LOW);
pinMode(6,OUTPUT);
digitalWrite(6,LOW);
// Serial.println("Starting dhcp request");
if(Ethernet.begin(mac) == 0)
{
digitalWrite(5,HIGH);
// Serial.println("No dhcp");
}
else
{
digitalWrite(6,HIGH);
// Serial.println("Dhcp ok");
}
// rest of the setup stuff
}
What is the last message displayed on the serial monitor?
edit: If you are using an IDE older than v1.0.1 (like v1.0 or v0022), you might need to apply the "605 bug" fix also.
http://code.google.com/p/arduino/issues/detail?id=605
My bad on the serial output. The Arduino Ethernet (not the shield) has no usb port for the serial monitor, does it? I would change those serial messages to two digital pins for a test. Use digital pins 5 and 6 as OUTPUTs and change the pins to indicate the status. A voltmeter should tell you what is happening by the voltage on the pins. I changed the code to use those pins and commented out the serial outputs.