
<?php // ********************* // Konfiguracja // /* OS na ktorym bedzie uruchamiany skrypt windows - dziala _tylko_ metoda ping unix - dziala zarowno ping jak i nmap (jezeli jest w systemie) */ $config['os'] = 'unix'; /* Metoda sprawdzania hostow ping nmap - wymaga nmapa w systemie*/ $config['scanMethod'] = 'nmap'; /* IPki do sprawdzenia */ $ipsArray['192.168.0.1'] = \"Host1\"; $ipsArray['192.168.0.2'] = \"Host2\"; /* Tablica ipkow majacych dostep do strony (jezeli pusta - wszyscy maja dostep) */ //$allowArray[] = \"127.0.0.1\"; // ********************* // Sprawdzenie uprawnien // dostepu do strony { { } } // ********************* // Szablon $tblBegin = '<table border=\"0\" cellpadding=\"0\" cellspacing=\"2\" summary=\"\"> <tr> <td colspan=\"3\" class=\"title\">Status komputerów w sieci lokalnej</td> </tr> <tr> <td colspan=\"3\" class=\"separator\"></td> </tr> <tr> <td class=\"cell2\">Status</td> <td class=\"cell2\">Host/ksywa/imię</td> <td class=\"cell2\">Adres IP</td> </tr>'; $tblRow = '<tr> <td class=\"cell\" style=\"text-align: center\"><img src=\"comp{STATUS}.gif\"></td> <td class=\"cell\">{HOST}</td> <td class=\"cell\">{IP}</td> </tr>'; $tblEnd = '<tr height=\"55\" valign=\"center\"> <td class=\"cell3\" colspan=\"3\">W sumie: <img src=\"compon.gif\" align=\"absmiddle\"> {SUMAON} <img src=\"compoff.gif\" align=\"absmiddle\"> {SUMAOFF} </td> </tr> </table>'; // ********************* // Sprawdzenie komputerow $time_start = getmicrotime(); $compOn = $compOff = 0; foreach( $ipsArray as $ip => $host ) { $compStatus = scan( $ip ); ($compStatus == \"on\") ? $compOn++ : $compOff++; $row = $tblRow; $rows .= $row; } $page = $tblBegin . $rows . $end; $time_end = getmicrotime(); $stoper = $time_end - $time_start; function scan( &$ip ) { if( $config['scanMethod'] == 'nmap' ) { } elseif( $config['scanMethod'] == 'ping' ) { if( $config['os'] == 'windows' ) { } else { } } else { Return \"off\"; } } function getmicrotime() { return( (float)$usec + (float)$sec ); } ?> <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-2\" /> <style type=\"text/css\"> body { margin: 15px; font: 11px Verdana; color: #515151; } table { text-align: center; border: 1px solid gray; } a, a:link, a:visited { text-decoration: none; color: #515151; } a:hover { text-decoration: underline; color: black; } td, tr { font: 11px Verdana; color: #515151; } .title { padding: 5px; background-color: #e5e5e5; color: black; text-align: center; font-weight: bold; } .cell { padding: 5px; background-color: #F5F5F5; text-align: left; } .cell2 { padding: 5px; background-color: #F5F5F5; font-weight: bold; text-align: center; } .cell3 { padding: 5px; background-color: #F5F5F5; font-weight: bold; text-align: right; } .separator { height: 2px; background-color: #D2D2D2; } .stopka { font: 9px Verdana; color: #a5a5a5; } </style> <title>Status komputerów w sieci lokalnej</title> </head> <body> <? ?> </body> </html>
Ikonki (compon.gif i compoff.gif) można zrobić samemu, a bardzo leniwi mogą sobie pobrać te, które ja użyłem.
Skrypcik można używać i zmieniać do woli, jedyne o co proszę to o link do skryptu w przypadku użycia go

<b>[update]</b> Uwaga, skrypt przystosowany jest do sprawdzania komputerów w sieci lokalnej! Jeżeli ktoś chce sprawdzać zewnętrzne hosty, musi zwiększyć czas oczekiwania na odpowiedź (-w 10 - w przypadku pinga windowsowego; -max_rtt_timeout 10 - w przypadku nmapa), co niestety wydłuży czas sprawdzania hostów.
Czas ten podany jest w milisekundach, myślę, że w przypadku zewnetrznych hostów trzeba by ustawić go na co najmniej 200 ms.