#n3ur0n4 c0rp | silicon cell into your mind

TAG | Bot

Oct/09

21

IRC Bot, Akasha’s Code

==================================
By: z3r0.und3r
To: #n3ur0n4
Url: http://n3ur0n4.org
Reply to: z3r0.und3r@n3ur0n4.org
==================================

==================================
IRC Bot, Akasha’s Code
==================================

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!!!

<?
$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
?>

, , , , , ,

n3ur0n4

#n3ur0n4 Corporation
Live Free & Die Free