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.