Hey Leute,
ich hab mal wieder ne Frage und brauche eure Hilfe
und zwar folgendes - ich mach gerade für die Uni nen Projekt und ein Teil davon ist, über einen Webapp (Apache über Raspberry Pie) + PHP mehrere Server im lokalen Netz anzupingen um deren Online / Offline Status zu überprüfen. Jetzt hab ich mal bisschen rumgegoogelt und bin habe diese Seite mit folgenden PHP Skript gefunden, welches laut Beschreibung genau das macht, was ich mir wünsche.
https://www.informationsarchiv.net/topics/13689/
inzwischen hab ich schon rausgefunden dass die eregi - Fuktion nicht mehr gibt. Mir wurde stattdessen geraten preg_match / strpos zu verwenden.
Ich hab das jetzt mit preg_match und strpos ausprobiert, aber leider funktioniert es immer noch nicht so wie gewollt.
Hab das script einmal mit preg_match und strpos abgeändert um das einzeln durchzutesten, aber wie gesagt es läuft nicht.
Meinem Gefühl nach ist der Fehler irgendwo beim Einlesen der Ping Antwort aus der Shell in die $checker Variable.
Kann das sein? Könnt ihr mir da helfen das ganze zum laufen zu bringen?
Wäre echt super..
Danke euch!!
function ping($PC,$ip)
{
//Pingoptionen für Linux Rechner
$cmd=shell_exec("ping -c 1 -t 2 $ip"); // Ping mit counter=1 und timeout=2 (wartet zwei millisek. auf Antwort)
$checker=explode(",",$cmd); // Array erstellen um auf Received = 1 oder Received = 0 checken zu können.
if (strpos ($checker[1], "0", $out))
{
$connectionstatus="<img src="off.gif">";
$text="ist offline";
} // Check ob "0" im Array an 1. Stelle enthalten.
if (preg_match ("unknown", $checker[0], $out))
{
$connectionstatus="<img src="err.gif">";
$text="ist unbekannt / hat einen unbekannten Status";
} // Check ob "unknown" im Array an 0. Stelle enthalten.
if (eregi ($checker[1], "1", $out))
{
$connectionstatus="<img src="on.gif">";
$text="ist online";
} // Check ob "1" im Array an 1. Stelle enthhalten.
$output="$connectionstatus [$ip] <b>$PC $text.</b><br><br>";
return $output; // Die Ausgabevariable als Rückgabewert.
Alles anzeigen