Hola, hace tiempo tengo la idea de poder poner en mi web un listado de la gente que está conectada a mi canal de IRC. Como una vista previa de los usuarios conectados.
Buscando en la web encontré un código hecho por Vlan7, que data de 2006 y que según dice, hace lo que quiero. Como no me funciona, antes de admitir que es culpa mía, prefiero echarle la culpa al código y por tanto, consultarles si el mismo está acorde a los tiempos que corren, ya que lo estoy probando en un server con PHP 5.3.4 y no me da ni pelota (bah, me dice que la constante
salir no está definida).
¿Es mucha molestia si le hechan un vistazo?
Código PHP:
Ver original<?php
// botbc 2.0 Por vlan7
// http://www.vlan7.org
$servidor = 'dune.irc-hispano.org';
$puerto = 6667;
$nick = 'botbc';
$host = 'www.vlan7.org';
$canal='#canal';
$con['socket'] = fsockopen($servidor, $puerto);
if (!$con['socket']) {
print ("No se ha podido conectar con $servidor en el puerto $puerto");
} else {
fputs($con['socket'], "USER $nick $host $host ".$nick."\n\r"); fputs($con['socket'], "NICK $nick ".$host."\n\r");
$salir=false;
$eof=false;
while ((!$eof) && (!$salir)) {
$con['buffer']['linea'] = trim(fgets($con['socket'], 1024));
if(substr($con['buffer']['linea'], strpos($con['buffer']['linea'], 'End of /WHO list'))=='End of /WHO list') { $salir=true;
}
if(substr($con['buffer']['linea'], 0, strlen($servidor)+5) == ':'.$servidor.' 352') { $nicks = explode(" ", $con['buffer']['linea']); print "$nicks[7] ";
}
if(substr($con['buffer']['linea'], 0, 6) == 'PING :') { fputs($con['socket'], "PONG :".substr($con['buffer']['linea'],6)."\n\r"); fputs($con['socket'], "WHO ". $canal ."\n\r"); }
if(!salir) {
$eof=feof($con['socket']); }
}
}
?>