Fai un ping su un server esterno a tua scelta, e verifichi se c'è una connessione internet attiva
in questo caso ho messo un IP NTP server visto che uso swRTC.h, l'ip corrisponde a questo sito http://www.inrim.it/ntp/index_i.shtml, se però vuoi metterne un altro l'ip lo trovi facendo CMD > ping www.sito.it ..com etc
Puoi come seconda opzione, nel caso non rispondesse internet, pingare il tuo gateway verifichi se almeno la tua connessione interna funziona correttamente, non è escluso che si sia piantata la ethernet.
#include <SPI.h>
#include <Ethernet.h>
#include <ICMPPing.h>
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // max address for ethernet shield
byte ip[] = {192,168,2,177}; // ip address for ethernet shield
byte pingAddr[] = {193, 204, 114, 232}; // ip address to ping
SOCKET pingSocket = 0;
char buffer [256];
void setup()
{
Ethernet.begin(mac, ip);
delay (1000);
Serial.begin(9600);
ICMPPing ping(pingSocket);
ping(4, pingAddr, buffer);
Serial.println(buffer); //debug
String ping_out = String (buffer);
if (ping_out.indexOf("TTL=") > 0)
Serial.println("Verifica Ethernet: Ping server esterno ... Status >> OK"); //debug
else
Serial.println("Verifica Ethernet: Ping Ping server esterno ... Status >> ERROR"); //debug
}
void loop(){}
libreria http://www.blake-foster.com/projects/ICMPPing.zip
ciao