- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- bot in perl miglioramento
-
bot in perl miglioramento
salve ragazzi o messo giù questo codice in perl
volevo sapere in questo codice c'è qualche sezione che posso migliorare? se si come grazie perchè ciò messo 1 mese per prepararlo e rendelro funzionante ma vorrei migliorare il codiceuse IO::Socket::INET; use LWP::UserAgent; use Net::FTP; # code // # #NOME PROCESSO bot: my $np = 'nex'; #PROCESSO CGI $0="$np"."\0"x1;; my $PID = fork; exit if $PID; #dati server porta canale pass $server = "dns server"; $port = "6668"; $nick = "Nome-bot"; $passn = "password"; #pass nickname $ch = "#chan"; $chcomand ="#chan"; $cmdup ="cd /home/;./run.bash"; $cmddwn ="killall -9 iroffer-it64"; #connessione ad irc $irc = IO::Socket::INET->new(PeerAddr=>"$server",PeerPort=>"$port",Proto=>"tcp") or die "Impossibile contattare il server!\n"; $irc->autoflush(1); sleep(5); #dico al server il mio nick il mio user e il mio ident print $irc "NICK $nick\r\n"; print $irc "USER BANNER 8 * : BANNER :r0x\r\n"; print $irc "NS IDENTIFY $passn\r\n"; #entro nel canale di ascolto e mi do la Op print $irc "JOIN $ch $pass\r\n";sleep (1); print $irc "JOIN $chcomand \r\n"; #Code // ascolto da irc ed eseguo comandi in ssh // while ($line = <$irc>) { if ($line =~ /^PING \:(.*)/) { print $irc "PONG :$1\r\n"; } #comando help canale 1 if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $ch :.help/i){ print $irc "PRIVMSG $ch 18\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTool Gestore Iroffer \r\n";sleep (1); print $irc "PRIVMSG $ch 4\t\t!op nick 19Oppa il nick 4[17comando da dare su $ch4]\r\n";sleep (1); print $irc "PRIVMSG $ch 4\t\t!deop nick 19Deoppa in nick 4[17comando da dare su $ch4]\r\n"; print $irc "PRIVMSG $ch 4\t\t!ban nick 19Per bannare e kikkare fuori lo scemo di turno4[17comando da dare su $ch4] \r\n";sleep (1); print $irc "PRIVMSG $ch 4\t\t!unban nick 19Per Togliere Il Ban4[17comando da dare su $ch4]\r\n"; print $irc "PRIVMSG $ch 4\t\t!kick nick 19Per kikkare Senza Ban Lo Scemo Di Turno4[17comando da dare su $ch4] \r\n";sleep (1); print $irc "PRIVMSG $ch 4\t\t!list 19Per vedere la lista web4[17comando da dare su $ch4] \r\n"; print $irc "PRIVMSG $ch 4\t\t!esci 19Per killare $nick4[17comando da dare su $ch4] \r\n";sleep (1); print $irc "PRIVMSG $ch 4\t\t!voicizza 19Per dare il +v a tutti i bot4[17comando da dare in pvt a $nick4] \r\n"; print $irc "PRIVMSG $ch 4\t\t!devoicizza 19Per togliere il +v a tutti i bot4[17comando da dare in pvt a $nick4] \r\n";sleep (1); print $irc "PRIVMSG $ch 4\t\t!add sitolista 19Per cambiare link alla lista web4[17comando da dare in pvt a $nick4] \r\n"; print $irc "PRIVMSG $ch 4\t\t!banner sitobanner 19Per cambiare link del banner4[17comando da dare in pvt a $nick4] \r\n"; print $irc "PRIVMSG $ch 4\t\t!Up 19Per alzare tutti gli iroffer 4[17comando da dare su $ch4]\r\n"; print $irc "PRIVMSG $ch 4\t\t!Dwn 19Per killare tutti gli iroffer 4[17comando da dare su $ch4]\r\n"; print $irc "PRIVMSG $ch 4\t\t!link 19Per vedere il link della lista web 4[17comando da dare su $ch4] \r\n"; print $irc "PRIVMSG $ch 4\t\t!rehash 19Per rehashare il bot 4[17comando da dare in pvt a $nick4] \r\n"; } !op (Assegna lo stato di operatore al nick da voi richiesto nel canale degli user) if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $ch :.op (.*)\r/i){ $friends = "$4"; print $irc "MODE $chcomand +o $friends \r\n"; print $irc "PRIVMSG $ch 4 op su 19$chcomand ... 4nuovo op 19(( $friends )) \r\n"; } !deop (Toglie lo stato di operatore al nick da voi richiesto nel canale degli user) if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $ch :.deop (.*)\r/i){ $friends = "$4"; print $irc "MODE $chcomand -o $friends \r\n"; print $irc "PRIVMSG $ch 4 deop su 19$chcomand ... 4Op Declassato 19(( $friends )) \r\n"; } !ban (Butta fuori il nick da voi richiesto nel canale degli user) if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $ch :.ban (.*)\r/i){ $friends = "$4"; $admin = "$1"; print $irc "MODE $chcomand +b $friends \r\n"; print $irc "KICK $chcomand $friends : $admin ti domina e ti caccia\r\n"; print $irc "PRIVMSG $ch 4Banned 19(( $friends )) 4su 19$chcomand \r\n"; } !unban (Toglie il ban al nick da voi richiesto nel canale degli user) if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $ch :.unban (.*)\r/i){ $friends = "$4"; print $irc "MODE $chcomand -b $friends\r\n"; print $irc "PRIVMSG $ch 4 UnBanned 19(( $friends )) 4su 19$chcomand \r\n"; } !kick (Kicca fuori il nick da voi richiesto nel canale degli user) if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $ch :.kick (.*)\r/i){ $vittima = "$4"; print $irc "PRIVMSG $ch 4Lo scemo di turno --> 19$vittima 4è stato cacciato da 19$chcomand ... \r\n"; print $irc "KICK $chcomand $vittima : 4cominciamo ad impare le buone maniere\r\n"; } ############################################################################### ######### ATTENZIONE ATTENZIONE ATTENZIONE ATTENZIONE ATTENZIONE # ######### crea un txt chiamato nickbot.txt con tutti i nick uno sotto laltro # ############################################################################### # !voicizza (Assegna il grado di +v a tutti i bot nel canale degli user) if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $nick :!voicizza/i){ print $irc "PRIVMSG $ch 4Boss 8Voicizzo La Net\r\n"; $file = 'nickbot.txt'; open(INFO, $file); # Apre il file @righe = <INFO> ; # Legge tutto in un array close(INFO); # Chiude il file foreach $bots (@righe) { print $irc "MODE $chcomand +v $bots\r\n"; } } !devoicizza (Toglie il grado di +v a tutti i bot nel canale degli user) if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $nick :!devoicizza/i){ print $irc "PRIVMSG $ch 4Boss 8Devoicizzo La Net\r\n"; $file = 'nickbot.txt'; open(INFO, $file); # Apre il file @righe = <INFO> ; # Legge tutto in un array close(INFO); # Chiude il file foreach $bots (@righe) { print $irc "MODE $chcomand -v $bots\r\n"; } } !list (Da la lista nel canale degli user a chi la richiede sia in canale che in pvt ) if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $chcomand :!list/i){ print "";sleep (1); my $nik = $1 ; $file = 'bweb.txt'; open(INFO, $file); # Apre il file @righe = <INFO> ; # Legge tutto in un array close(INFO); # Chiude il file print $irc "NOTICE $nik 9 0,2 VAI SUL BLOG 4 @righe \n\r"; print $irc "NOTICE $nik 4 Copia il link di un banner publicitario in privato a 9$nick 4che ti da il link della lista web di $chcomand \n\r"; print $irc "PRIVMSG $ch 4 Richiesta lista da $nik su $chcomand\r\n"; } !add (Memorizza il link della lista web da dare al richiedente , Cosi e' possibile cambiare anche il link tutti i giorni if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $nick :!add (.*)/i){ $nik ="$1"; $files ="$4"; system ("rm -fr pweb.txt"); open VULN, ">>", "pweb.txt"; print VULN "$files\n"; print $irc "PRIVMSG $nik 4 Boss 8nuova lista addata \r\n"; close VULN; } !banner (Memorizza il link della banner da dare al richiedente , Cosi e' possibile cambiare anche il link tutti i giorni if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $nick :!banner (.*)/i){ $nik ="$1"; $files ="$4"; system ("rm -fr bweb.txt"); open VULN, ">>", "bweb.txt"; print VULN "$files\n"; print $irc "PRIVMSG $nik 4 Boss 8nuova banner addata \r\n"; close VULN; } # comando per legegre il banner dal pvt del bot if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $nick :http(\:\/\/sitolink.*\/)/i){ $nik ="$1"; $links ="$4"; $file = 'pweb.txt'; open(INFO, $file); # Apre il file @righe = <INFO> ; # Legge tutto in un array close(INFO); # Chiude il file print $irc "PRIVMSG $ch 4 Lutente 8$nik messaggio http$links \n\r"; print $irc "NOTICE $nik messaggio @righe \r\n"; } # comando per legegre il banner dal pvt del bot if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $nick :https(\:\/\/sitolink.*\/)/i){ $nik ="$1"; $links ="$4"; $file = 'pweb.txt'; open(INFO, $file); # Apre il file @righe = <INFO> ; # Legge tutto in un array close(INFO); # Chiude il file print $irc "PRIVMSG $ch 4 Lutente 8$nik messaggio http$links \n\r"; print $irc "NOTICE $nik messaggio @righe \r\n"; } per alzare le shell if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $ch :!Up/i){ print $irc "PRIVMSG $ch Boss alzo la net ..\r\n"; system("$cmdup"); } per buttare le shell if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $ch :!Dwn/i){ print $irc "PRIVMSG $ch Boss killo la net ..\r\n"; system("$cmddwn"); } !esci (per far uscire il bot da irc .Comando disponibile solo per un admin if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $nick :!esci peppe/i){ print $irc "QUIT Tool Perl Versione2\r\n"; system("kill -USR1 `pidof nex`"); } per rehashare if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $nick :!rehash peppe/i){ $boss ="$1"; print $irc "NOTICE $boss Boss Rehashing ..\r\n"; system("./a.sh &"); system("kill -USR1 `pidof nex`"); } #rejoin dopo kick if ($line=~/:(.*)!.*KICK/) { print $irc "JOIN $ch\r\n"; print $irc "JOIN $chcomand\r\n"; } #lettura onjoin if ($line=~/:(RLZ\|.*\|.*)!.*JOIN/) { $nik ="$1"; print $irc "MODE $chcomand +v $nik\r\n"; print $irc "PRIVMSG $ch 1,4ATTENZIONE ERA CADUTO 1,0\t\t---> \t\t1,6$nik\r\n"; } # comando per legegre il banner dal pvt del bot if ($line=~ /^:(.+?)!(.+?)@(.+?) PRIVMSG $ch :!link/i){ $nik ="$1"; $links ="$4"; $file = 'pweb.txt'; open(INFO, $file); # Apre il file @righe = <INFO> ; # Legge tutto in un array close(INFO); # Chiude il file print $irc "NOTICE $nik 4 ATTENZIONE $nik 9Ecco Il Link della lista di $chcomand @righe \r\n"; } } # Code // Fine // # # Auto-riconnessione $irc_state = 0; while($irc_state != 1) { goto bot; }