Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- # Autore: SiD
- # Licenza: GNU/Gpl
- # Avviare il bot ed attendere che entri nel chan, da lì in poi sarà attivo =D
- # ********************************************
- # Per far uscire il bot, inviare in PRIVATO AL BOT:
- # !esci <nick bot> <password bot>
- # Per dare l'op ad un utente, inviare in PRIVATO AL BOT:
- # !op <nick utente> <password bot>
- # Per dare il deop ad un utente, inviare in PRIVATO AL BOT:
- # !deop <nick utente> <password bot>
- # Per ricavare la versione del bot:
- # !versione
- # Per cercare un hash e ricavare la password da Milw0rm inviare in PRIVATO AL BOT:
- # !milw0rm <hash>
- # Per esempio !milw0rm 0800fc577294c34e0b28ad2839435945
- # ********************************************
- use IO::Socket;
- use LWP::UserAgent;
- my $unick = 'Sn1p3r'; #Nick bot che apparirà nel chan
- my $server = 'irc.oltreirc.net'; # Server IRC
- my $chan = '#sid'; # Chan
- my $bot = 'Sniper'; # Nome del bot (non apparirà)
- my $psw = 'psw'; # Cambiare psw con una password da voi scelta!!
- my $version = '1.0'; # Versione del bot
- my $log_name = 'Sniper-log.txt'; # Nome del log creato
- my $kick_status = 1; # Kick per bestemmie-parolaccie. Settare a 0 per disattivarlo.
- my $autojoin = 1; # AutoJoin immediato al chan in caso di kick. Settare a 0 per disattivarlo.
- $sock = new IO::Socket::INET (
- PeerAddr => $server,
- PeerPort => 6667,
- Proto => 'tcp'
- ) or die "Impossibile connettersi a $server\n";
- start();
- @risate = ('XD', 'xD', 'LOL', 'rotfl', 'asd', 'haha');
- while($rcv = <$sock>) {
- print $rcv;
- # Log di quello che accade, molto elementare =D
- open(BOT_LOG, ">>", $log_name);
- print BOT_LOG $rcv;
- close(BOT_LOG);
- #Regex per IRC
- if ($rcv =~ /:(.*?)!/) {
- $nick = $1;
- }
- if ($rcv =~ /(ciao|we|eila|eccomi|hi all|ciau|ciauz|ciao a tutti|salve|hola)/) {
- if ($rcv =~ /PRIVMSG $unick :(ciao|we|eila|hi|ciau|ciauz|hola)/) {
- priv("Ciao $nick, non parlarmi in query, sono un bot..");
- }
- else {
- chan("Ciao $nick ^^");
- }
- }
- if ($rcv =~ /porco dio|dio porco|dio cane|test. di cazzo|figl.+ di puttana|coglion./) {
- if ($rcv =~ /PRIVMSG $unick :(porco dio|dio porco|dio cane|test. di cazzo|figl.+ di puttana|coglion.)/) {
- priv("$nick, gira alla larga cretino -.-");
- }
- else {
- chan("Puoi anche andartene, $nick!");
- if ($kick_status == 1) {
- kick();
- }
- }
- }
- if ($rcv =~ /LOL|LOLZ|lol|lolz|asd|ASD|XD|xD|rotfl|ROTFL|haha|hehe|hihi/) {
- $count = scalar(@risate);
- $rand = int(rand($count));
- if ($rcv =~ /PRIVMSG $unick :(LOL|LOLZ|lol|lolz|asd|ASD|XD|xD|rotfl|ROTFL|haha|hehe|hihi)/) {
- priv("@risate[$rand]");
- }
- else {
- chan("@risate[$rand]");
- }
- }
- if ($rcv =~ /(programmazione|perl|python|php|ruby|java|c\+\+|assembly)/) {
- if ($rcv =~ /PRIVMSG $unick :(programmazione|perl|python|php|c\+\+|java|assembly)/) {
- priv("Programmazione rulez ^^");
- }
- else {
- chan("Programmazione rulez ^^");
- }
- }
- if ($rcv =~ /((W|w)indows|(B|b)ill (G|g)ates)/) {
- if ($rcv =~ /PRIVMSG $unick :((W|w)indows|(B|b)ill (G|g)ates)/) {
- priv("Passa a Linux =)");
- }
- else {
- chan("Linux r0x4!");
- }
- }
- if ($rcv =~ /!versione/) {
- if ($rcv =~ /PRIVMSG $unick :(!versione)/) {
- priv("Versione ~ $version");
- }
- else {
- chan("Versione ~ $version");
- }
- }
- if ($rcv =~ /PRIVMSG $unick :!milw0rm (.+)/) {
- $hash = $1;
- $milw0rm = "http://www.milw0rm.com/cracker/search.php";
- $agent = LWP::UserAgent->new();
- $head = [
- hash => "$hash",
- Submit => "Submit"
- ];
- $req = $agent -> post($milw0rm, $head);
- if($req) {
- if($req -> content =~ /<\/TD><TD align="middle" nowrap="nowrap" width=90>(.*?)<\/TD>/) {
- $passw = $1;
- priv("Password trovata ~ $passw");
- }
- else {
- priv("Password non trovata =(");
- }
- }
- }
- if ($rcv =~ /KICK $chan $unick/) {
- if ($autojoin == 1) {
- print $sock "JOIN $chan\r\n";
- }
- }
- if ($rcv =~ /PRIVMSG $unick :!op (.*?) $psw/) {
- op("$1");
- }
- if ($rcv =~ /PRIVMSG $unick :!deop (.*?) $psw/) {
- deop("$1");
- }
- if ($rcv =~ /PRIVMSG $unick :!esci $unick $psw/) {
- chan("Bye Bye!");
- exit();
- }
- if ($rcv =~ /^PING :(.*?)/) {
- print $sock "PONG :$1";
- }
- }
- # Subroutines ^^
- sub start() {
- print $sock "NICK $unick\r\n";
- print $sock "USER $unick 8 * :$bot\r\n";
- print $sock "JOIN $chan\r\n";
- }
- sub chan() {
- my $mes = shift;
- print $sock "PRIVMSG $chan :$mes\r\n";
- }
- sub priv() {
- my $mes = shift;
- print $sock "PRIVMSG $nick :$mes\r\n";
- }
- sub kick() {
- print $sock "KICK $chan $nick\r\n";
- }
- sub op() {
- my $whop = shift;
- print $sock "MODE $chan +o $whop\r\n";
- }
- sub deop() {
- my $whop = shift;
- print $sock "MODE $chan -o $whop\r\n";
- }
- sub exit() {
- print $sock "QUIT \r\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement