Zum Inhalt

Rechner via PHP Pingen

Hier ein Script zum pingen (getestet unter Linux) eines Rechners. Hierbei ging es generell darum eine kleine Übersicht über Pools zu schaffen, bei der man auf einen Blick sieht, welche Rechner angeschalten sind und welche nicht.

Zusätzlich war noch geplant eine Abfrage per WMI zu machen um hier auch noch anzuzeigen, ob der Rechner belegt ist, oder nicht. Diese implementierung wird noch nachgeholt.

Prinzip:
Um dieses Script zu verwenden genügt es, die entsprechende php Datei im <img> Tag als Source mit dem entsprechenden Rechnernamen (ohne suffix) anzugeben ( z.b. <img src=“availability.php?name=mycomp“ width=“114″ height=“114″ /> ).
Entsprechende Bilder die verwendet wurden sind im Anhang zu finden. Diese Bilder werden zur Laufzeit mit dem gewählten Font entsprechend mit dem angegebenen Rechnernamen beschriftet.

Vorsicht: Dieses script bedarf noch diverse Anpassungen (u.a. Security) um das Ausführen diverser Befehle auf einem evtl. unsicheren System zu vermeiden .

Anmerkung: Der WWW Benutzer muss natürlich über entsprechend Rechte verfügen das Programm „Ping“ mit der Funktion „exec“ auszuführen.

Datei: availability.php
$rechnername = strtoupper($_GET[„name“]);
$rechnername = addslashes($rechnername);
$address = gethostbyname($rechnername.“.domainsuffix“);

$command = „ping -c 1 -t 10 “ . $address;
$r = exec($command);
if ($r[0]==“r“)
{
$socket = socket_create (AF_INET, SOCK_STREAM, 0);
if ($socket < 0)
{
$srcpic = „rechner.jpg“;
} else {
$srcpic = „rechner_on.jpg“;
}
}else{

$srcpic = „rechner.jpg“;

}

$img_handle = imagecreatefromjpeg($srcpic);

$font = ‚/path/to/FONT.ttf‘;
$black = imagecolorallocate($img_handle, 0, 0, 0);
imagettftext($img_handle, 20, 0, 15, 62, $black, $font, $rechnername);

header („Content-type: image/png“);
ImagePng($img_handle);

?>

Veröffentlicht inCoding

Schreibe den ersten Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

This site uses Akismet to reduce spam. Learn how your comment data is processed.