El ejercicio consiste en Comprobar los hosts a los que se puede acceder mediante el protocolo icmp. Muestra todos las IP's en una tabla.
Añade un campo más a la tabla que indique en caso de que se llegue a esos hosts, el tiempo para acceder a esos hosts, y en caso de no llegar a un determinado hosts indícalo con el texto “destino inalcanzable
A continuación detallo script que tengo.
Lo comentado es que me error y no se como agregar este campo a la tabla.
Lo comentado al final es como están los campos en el ICMP
<?php
echo "<table border='1'>";
for ($i=221;$i<=254;$i++) {
$IP = '10.10.120.'.$i;
$comando = 'ping 10.10.120.' . $i. ' -n 1';
$ejecucion = popen($comando,'r');
$accesible='si';
while (!feof($ejecucion)) { // mientras no sea el final del archivo($ejecucion)
$linea = fgets($ejecucion);
$campos = explode('inaccesible',$linea);
if (count($campos) == 2) {
$accesible='no';
}
/*********************por revisar*****************
if ($count($campos)==8) { //en el protocolo ICMP ocupa el n14, noveno lugar
$linea = preg_replace('/\s+/','&',$linea);
$campos = explode('&',$linea);
$ultima = $dato[2]." ".$dato[3];
} // echo "<tr> <td> $IP </td> <td> $accesible</td> <td>$ultima</td> </tr>";
// por revisar
}************************************************* *******/
}
echo "<tr> <td> $IP </td> <td> $accesible </td> </tr>";
}
echo "</table>";
/******************
Campo de tipo Tipo de mensaje ICMP
0 Respuesta de eco (Echo Reply)
3 Destino inaccesible (Destination Unreachable)
4 Disminución del tráfico desde el origen (Source Quench)
5 Redireccionar (cambio de ruta) (Redirect)
8 Solicitud de eco (Echo)
11 Tiempo excedido para un datagrama (Time Exceeded)
12 Problema de Parámetros (Parameter Problem)
13 Solicitud de marca de tiempo (Timestamp)
14 Respuesta de marca de tiempo (Timestamp Reply)
15 Solicitud de información (obsoleto) (Information Request)
16 Respuesta de información (obsoleto) (Information Reply)
17 Solicitud de máscara (Addressmask)
18 Respuesta de máscara (Addressmask Reply)*****************/
?>