#!/usr/bin/perl
# Codeado por Firos - Staff http://foro.elhacker.net
#####DATOS#####
$servidor = "irc.irc-domain.org";
$puerto = "6667";
$nick = "sn00py";
$admin = "firos";
$sn00py = "sn00py";
$canales = ":#ziberzone:#wa";
$conectado = 0;
$comandos = "Los comandos actualmente disponibles son: !kick, !ban, !unban, !voice, !devoice, !quit, !part, !join, !commands, !op, !deop. Para poder utilizarlos has de tener privilegios sobre el bot.";
###############
use IO::Socket;
$socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$servidor", PeerPort => "$puerto") || print "Imposible conectar.\n";
&IRCSend ("NICK $sn00py");
&IRCSend ("USER la madre que lotrajo");
while($conexion=<$socket>)
{
print $conexion;
if ($conexion=~/PING :/)
{
&IRCSend ("PONG $'");
$conectado = 1;
}
if ($conectado == 1)
{
######### Entrar a canales #########
if ($conexion=~/001/)
{
@canaless = split(/:/ , $canales);
for($i=0;$i<@canaless;$i++)
{
&JOIN("$canaless[$i]");
}
}
######### Aqui empieza la identificacion/ejecución de comandos ###########
if ($conexion =~ /^\:(\S*)!(\S*)@(\S*)\s(\S*)\s(\S*)\s:(\S*)\s(.*)/)
{
$quien = $1; $comandoserv = $4; $donde = $5; $comando = $6; $patron = $7;
######### Comandos de canal ########
if ($quien eq $admin)
{
if ($comando eq "!commands") { PRIVMSG("$donde" , $comandos); }
elsif ($comando eq "!op") { &IRCSend("MODE $donde +o $patron"); }
elsif ($comando eq "!deop") { &IRCSend("MODE $donde -o $patron"); }
elsif ($comando eq "!join") { &IRCSend("JOIN :$patron"); }
elsif ($comando eq "!quit") { &IRCSend("QUIT :$patron"); }
elsif ($comando eq "!kick") { &IRCSend("KICK $donde :$patron"); }
elsif ($comando eq "!ban") { &IRCSend("MODE $donde +b :$patron"); }
elsif ($comando eq "!unban") { &IRCSend("MODE $donde -b :$patron"); }
elsif ($comando eq "!voice") { &IRCSend("MODE $donde +v :$patron"); }
elsif ($comando eq "!devoice") { &IRCSend("MODE $donde -v :$patron"); }
elsif ($comando eq "!part") { &IRCSend("PART $donde :$patron"); }
}
}
######## Lectura/ejecución por query #########
if ($conexion =~ /^\:(\S*)!(\S*)@(\S*)\sPRIVMSG\s$sn00py\s\:(\S*)\s(\S*)\s(.*)/)
{
$quien = $1; $comando = $4; $canal = $5; $patron = $6;
if ($admin eq $quien)
{
if ($comando eq "!MSG") {IRCSend("PRIVMSG $canal :$patron"); }
}
}
######## Rejoin #########
if ($conexion =~ /^\:(\S*)!(\S*)@(\S*)\s(\S*)\s(\S*)\s(\S*)\s:(.*)/)
{
$quien = $1; $comandserv = $4; $donde = $5; $aquien = $6;
if ($comandserv eq "KICK") { &JOIN ("$donde"); }
}
}
[b]
http://foro.elhacker.net/index.php/topic,79954.0.html[/b]
######## Random NICK #########
if ($conexion=~/^\:(\S*)\s433\s(.*)\s$sn00py(.*)/)
{
$sn00py .= int(rand(999));
&IRCSend ("NICK :$sn00py");
}
}