PEAR para comprobar respuestas icmp

Enviado por el 24/02/2010

PEAR para comprobar respuestas icmp

PEAR es un repositorio de extensiones para PHP, que añade funcionalidades "extra" a este lenguaje de programación. Personalmente me interesan todas las relacionadas con el networking. Esta mañana he revisado mis enlaces y he "escrito" un pequeño script PHP que devuelve esta estado de un host. Simplemente comprueba si responde a un paquete ICMP. Si es así, muestra un mensaje en pantalla.Si aún no conoces PEAR, y programas aplicaciones PHP , o simplemente tienes curiosidad, en este enlace tienes documentación sobre cómo instalar PEAR en Ubuntu. Aún no he implementado PEAR en ninguno de los servidores que administro. En mi máquina con Ubuntu 9.10 [Linux apermuy-desktop 2.6.31-19-generic #56-Ubuntu SMP Thu Jan 28 01:26:53 UTC 2010 i686 GNU/Linux] he seguido las instrucciones para la instalación de la web oficial. Si tienes experiencia instalando aplicaciones desde el terminal no tendrás demasiados problemas.El paquete que he utilizado en el script es Net_Ping. En un primer momento y con el ejemplo de la web, el resultado es confuso: "escupe" en un array el resultado de un var_dump, con lo cual os podéis imaginar...Sí he comprobado, por lo menos en este paquete, que a pesar de que los programadores corrigen bugs y añaden nuevas características, el ejemplo de código para describir el uso de Net_Ping es "bastante cutre". He recurrido a esta web para comprender totalmente la utilización de la extensión.Fichero ping.php :require_once "Net/Ping.php";$ping = Net_Ping::factory();if (PEAR::isError($ping)) { echo $ping->getMessage();} else { $ping->setArgs(array('count' => 1)); $servidores = array( 0=>"www.gnome.org", 1=>"www.debian.org", 2=>"www.gnu.org"); foreach($servidores as $posicion=>$host){ if($ping->checkhost($host)){ echo "El host ".$host." esta levantado "; } else{ echo "El host ".$host." esta caido "; } } } Es evidente que no soy ni programador ni experto en PHP, pero estos días me documentaré más sobre PEAR, un proyecto realmente interesante.