Ich habe mal ein Script geschrieben welches mir meine Rechner zu hause anpingt und mir grafisch darstellt ob ein Rechner eingeschaltet ist oder nicht.
Man benötigt einen Webserver mit PHP welcher nicht im Savemodus läuft.
- Code: Alles auswählen
<?php
/* Dieses Script Pingt einen oder mehrere Rechner in einem Netzwerk
an und stellt somit fest ob diese/r eingeschaltet sind/ist oder nicht.
Dafür muss natürlich auf dem entsprechenden Computer auf dem das Script
laufen soll ein Webserver mit PHP installiert sein. ;-)*/
// ---------------- KONFIGURATION --------------
$iparray=array("Becks-Server:192.168.0.1", "Sylvester:192.168.0.2", "Erika:192.168.0.3", "Loaner3:192.168.0.4", "Accesspoint:192.168.0.10");
// Einfach den Computernamen, Doppelpunkt und die IP Adresse (oder Namen im Netzwerk) schreiben.
// Beispiel--> "Arbeitszimmer:192.168.0.2", "Server:192.168.1.1"
// ----------- ENDE DER KONFIGURATION -----------
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 (eregi ("0", $checker[1], $out))
{
$connectionstatus="<img src=\"off.gif\">";
$text="ist offline";
} // Check ob "0" im Array an 1. Stelle enthhalten.
if (eregi ("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 ("1", $checker[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.
}
while(list($k,$v)=each($iparray)) // Alle Computer "durchpingen" ;-)
{
$pcip=explode(":",$v); // Rechnername und IP in ein Array schreiben (Bei ":" erfolgt Trennung)
$output=ping($pcip[0],$pcip[1]); // Funktion mit den Daten des Arrays aufrufen
echo $output; // Fertig
}
?>
Das ganze speichern als ping.php
Wenn man noch eine Aktualisierung haben will kann man das mit Javascript lösen:
- Code: Alles auswählen
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Pingscript</title>
<script language="JavaScript">
<!--
var sURL = unescape(window.location.pathname);
function doLoad()
{
setTimeout( "refresh()", 2*2000 );
}
function refresh()
{
window.location.href = sURL;
}
//-->
</script>
<script language="JavaScript1.1">
<!--
function refresh()
{
window.location.replace( sURL );
}
//-->
</script>
<script language="JavaScript1.2">
<!--
function refresh()
{
window.location.reload( false );
}
//-->
</script>
</head>
<body onload="doLoad()">
<font face="verdana">
<b>Status der Comupter:</b><br><br>
<?php
include("ping.php");
?>
</font>
</body>
</html>