Estoy realizando un Script para saber vía web si están ON todos los Servidores IP.
Estas direcciones IP las saco de una base de datos por sql server.
La pagina realiza PING's a todas las IP's si están ON no muestra mensaje, pero si están OFF, me indica que por un mensaje la IP y que está OFF
El Script funciona bien, el único problema es que busca en la base de datos las IP's, realiza ping, comprueba si responde o no, y muestra o no el mensaje... Durante este proceso siempre me da error en 1 o 2 IP's por la respuesta del PING, cuando realmente están todos ON.
Código PHP:
<table>
<?php
set_time_limit(300);
$servername = "SERVER";
$connectioninfo = array("Database"=>"BASEDEDATOS", "UID"=>"USER", "PWD"=>"PASS", "CharacterSet"=>"UTF-8");
$connect = sqlsrv_connect ( $servername, $connectioninfo );
$sql = "SELECT * FROM TABLA WHERE IP < '161'";
$stm = sqlsrv_query( $connect, $sql );
if( $stm === false) {
die( print_r( sqlsrv_errors(), true) );
}
while( $row = sqlsrv_fetch_array ( $stm, SQLSRV_FETCH_ASSOC) ) {
$T2=$row['T'];
$T= intval($T2);
$ip = "10.1.$T.10";
$exec = true;
if($exec){
exec("ping $ip -n 1", $array, $return);
} else {
system("ping $ip -n 1", $return);
}
if($return){
print "<tr><td> $ip </td> <td><span style=\"color: red; \">OFF</span></td></tr>";
}
}
?>
</table>
Tarda mucho en lanzarse y cuando las IPS están ON me muestra que alguna esta OFF.
Algún consejo?
Gracias!