#n3ur0n4 c0rp

silicon cell into your mind

Bueno después de publicar temas fuera del ámbito informático les traigo un script PHP que me logre aya cuando aun eramos “#hdm”, creo que mi amigo ekzitro ha de recordar XD.

El siguiente script hace la función de IRC Bot en este caso conectara al servidor ruido de la red-latina, y entrara al canal #noc-hunt con el nick de Akasha, en caso de que el servidor IRC colapsara o la conexión del ordenador en donde se ha ejecutado llegase a nula, el script tratara de reconectar las veces que sean necesarias para regresar nuevamente al funcionamiento, mientras el ordenador en el que se corra el script este encendido, no faltara Akasha en el canal al que se le asigne en este caso #noc-hunt.

espero les sea de ayuda, con este tema dejamos en paz los IRC, por un tiempo claro. Un Saludo!!!

Code: Akasha.php

<?
$server['host'] = "ruido.red-latina.org";

$server['port'] = "6667";
$bot['nick']="Akasha";

while ($sockstate!=6) {
	@$IRC = fsockopen ($server['host'], $server['port'], &$errno, &$errstr, 30);

	echo "conectado";
	if ($errno!="10060") {

		while(!feof($IRC)) {
			$readX = fgets($IRC);

			if ($k0n!=1) {
				fputs($IRC,"USER ".$bot['nick']." ".$bot['nick']." ".$bot['nick']." :".$bot['nick']."\n");

				fputs($IRC,"NICK ".$bot['nick']."\n\n");

				$k0n=1;
			} else {
				$readX=trim(str_replace(":","",$readX));

				$arrayX=explode(" ",$readX);
				//:z3r1t0!z3r0@irc.n3ur0n4.org PRIVMSG #n3ur0n4 :test
				$userX[0]=explode("@",$arrayX[0]);

				$hostX=$userX[0][1];
				$userX[1]=explode("!",$userX[0][0]);

				$ident=$userX[1][1];
				$nick=$userX[1][0];

				if ($arrayX[0]=="PING") {
					fputs ($IRC,"PONG ".$arrayX[1]."\n");

				}
				if ($arrayX[1]=="255") {

					fputs ($IRC,"JOIN #noc-hunt\n");
				}
				if ($ident!=NULL) { //messajes

					switch ($arrayX[1]) {
						case "PRIVMSG":

							if ($arrayX[2]!=$bot['nick']) { //log de los comandos del canal

								switch (strtolower($arrayX[3])) {
									case "!readme":

										fputs ($IRC,"PRIVMSG ".$arrayX[2]." :Te leo ".$nick."\n");

										break;
									case "!op":
										if ($arrayX[4]!=NULL) {

											fputs ($IRC,"MODE ".$arrayX[2]." +o ".$arrayX[4]."\n");

										} else {
											fputs ($IRC,"MODE ".$arrayX[2]." +o ".$nick."\n");
										}

										break;
									case "!dop":
										if ($arrayX[4]!=NULL) {

											fputs ($IRC,"MODE ".$arrayX[2]." -o ".$arrayX[4]."\n");

										} else {
											fputs ($IRC,"MODE ".$arrayX[2]." -o ".$nick."\n");
										}

										break;
								}
							} else { //log de los comandos por privado solo admins ;)
								switch (strtolower($arrayX[3])) {

									case "!join":
										fputs ($IRC,"JOIN ".$arrayX[4]."\n");

										break;
									case "!off":
										fputs ($IRC,"QUIT BOT OFF\n");

										fclose ($IRC);
										exit();
										break;
									case "!left":

										fputs ($IRC,"PART ".$arrayX[4]."\n");

										break;
								}
							}
							break; //end of privmsg
					} //end of command switch

				}// end of messajes or actions
			} //end else connection rejoiner
			echo $readX."\n";

		}//end while for connection log
	}//end if not connected; reconnect
	$sockstate=1;
	$k0n=0;

}//end of while for infinite reconnect
?>