Arduino Netzwerk Serversteuerrung

Hi Leute ich habe mal wieder ein neues Projekt vor.

Das Hauptproblem ist das, das mein Openmediavault Sevrer nicht in den Standby geht wenn er nicht gebraucht wird.

nun meine Idee war einen Arduino zu benutzen um den Server per SSH in den Standby zu schicken und dann mittels Wake-on-lan wieder zu erwecken.

gedacht war es so das der Arduino regelmäßig (ca. 5min) einen Ping in verschiedene IP adressen absetzt und wenn mindestens eine dieser IP adressen antwortet, der zustand des Servers geprüft wird ggf. wenn er nicht an ist einen wake-on-lan an den server zu senden.

sollte nun im nächsten scan intervall keine der Ip adressen erreichbar sein, wird der server mittels ssh befehl in den standby geschickt.

ich habe nun schon ein sketch gefunden wo ich nach ip adressen scannen kann und die antworten über die console ausgeben kann.
das sieht dann in etwa aus wie wenn man bei windoof den ping befehl in der cmd ausführt.

hat vielleicht jemand sowas schon mal gemacht.
oder kann mir da jemand weiter helfen. wie gesagt ich habe die idee wie es funtionieren soll aber leider nicht die code erfahrung um es umzusetzen.

ich kann ja mal das sketch zum ip scannen, anhängen

/*
  Ping Example
 
 This example sends an ICMP pings every 500 milliseconds, sends the human-readable
 result over the serial port. 

 Circuit:
 * Ethernet shield attached to pins 10, 11, 12, 13
 
 created 30 Sep 2010
 by Blake Foster
 
 */

#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,178,177}; // ip address for ethernet shield
IPAddress pingAddr(192, 168, 178, 11); // ip address to ping

SOCKET pingSocket = 0;

char buffer [256];
ICMPPing ping(pingSocket, (uint16_t)random(0, 255));

void setup() 
{
  // start Ethernet
  Ethernet.begin(mac, ip);
  Serial.begin(115200);
}

void loop()
{
  ICMPEchoReply echoReply = ping(pingAddr, 4);
  if (echoReply.status == SUCCESS)
  {
    sprintf(buffer,
            "Reply[%d] from: %d.%d.%d.%d: bytes=%d time=%ldms TTL=%d",
            echoReply.data.seq,
            echoReply.addr[0],
            echoReply.addr[1],
            echoReply.addr[2],
            echoReply.addr[3],
            REQ_DATASIZE,
            millis() - echoReply.data.time,
            echoReply.ttl);
  }
  else
  {
    sprintf(buffer, "Echo request failed; %d", echoReply.status);
  }
  Serial.println(buffer);
  delay(500);
}

danke schon mal