Bot per IRC scritto in Perl, abbastanza basilare ma utile se volete lasciare un OP fisso nel vostro chan ^^
Funzioni e comandi:
. Risposta a saluto.
. Risposta a risate fatte da altri (LOL, asd, xD ecc..) con una risata casuale.
. Kick (solo se la variabile $kick_status è settata ad 1, altrimenti non kicka) a chi bestemmia o a chi dice qualche parolaccia.
. Risposta quando riceve il nome di qualche linguaggio di programmazione o la parola “programmazione”.
. Risposta quando riceve Microsoft o Bill Gates.
. Inviando !versione il bot risponde indicando la versione del bot stesso.
. Ricerca su Milw0rm di un hash. Inviare in privato al bot il seguente comando: !milw0rm (hash)
Esempio: !milw0rm 0800fc577294c34e0b28ad2839435945
. AutoJoin automatico al chan se il bot viene kickato (solo se la variabile $autojoin è settata ad 1, altrimenti non rientra).
. Inviando in privato !op (nick_per_op) (password_bot) dà l’op ad un utente, invece !deop (nick_per_deop) (password_bot) lo toglie.
. Inviando in privato !esci (nome_bot – Sn1p3r_default) (password_bot) si disconnette.
. Risposta al PING.
. Log di quello che accade nel chan.
Source:
Here
Consiglio a tutti di cambiare la password del bot (variabile $psw) 😀
Complimenti per il bot IRC!
P.S. Bella risposta quando si scrive Windows o Bill Gates 🙂
Ci vediamo, ciao.
Grazie per il commento.
A presto, SiD ^^
salve, si puo inserire su uno spazio web e farlo partire da li?
Di solito molti spazi web non permettono di eseguire script in Perl, ossia non hanno l’interprete Perl per Apache installato.
Però se anche ci fosse interpreterebbe solo script CGI, come pagine web, anche perchè altrimenti la sicurezza sarebbe mooolto bassa e ai danni del server 😛
In poche parole non funziona, ma se vuoi puoi lasciarlo in esecuzione su una tua macchina (che volendo può fungere da server ^^)
ciao sid! innanzitutto complimenti per lo script 😉 ti volevo solo chiedere un paio di cose..io eseguo lo script su una shell mac ma una volta eseguito ogni comando che scrivo me lo dice anche sulla shell! ti scrivo un pezzo:
server:SetUp root# ls
Sniper-log.txt black.pl
server:SetUp root# :ScIkKoSo!~scikkoso@q.fm PRIVMSG #scikkoso&friends :hello
attendo tue risposte grazie 🙂
ScIkKoSo
Io uso Linux, ma anche su Windows non dà problemi: se io scrivo sul chan “ls” per esempio, sulla shell ricevo
:SiD!sid@******* PRIVMSG #blabla :ls
ma il bot non è che mi stampa il contenuto della directory dove è in esecuzione (anche perchè non c’è nessun eval() che sarebbe mooolto pericoloso in questi casi senza controlli XD)
Praticamente il bot, oltre a salvare un log su un file (il nome puoi sempre modificarlo tu alla variabile $log_name) printa sulla shell tutto ciò che riceve dal server e dal canale ma in modo innocuo.
Se non vuoi intasare la shell, basta che cancelli la riga n. 48 ( print $rcv; ), salvi il file e riavvii il bot, così non avrai più messaggi stampati ma solo il log su file ^^
P.S. Grazie 😉
SID grazie per il consiglio che ha funzionato a meraviglia!:) mi chiedevo se percaso si poteva fare qualcosa per togliere la password…
fammi sapere 🙂 ciauu
Sì… cioè non proprio: avevo predisposto il bot per avere una password, ma se proprio non vuoi usarla devi assegnare alla variabile $psw un valore nullo, falso.
In questo modo però (siccome non abbiamo modificato il codice dove ci sono le regex), il bot si aspetta comunque un valore qualsiasi (questo perchè la variabile $psw è nulla o vuota e le regex che ho scritto si aspettano un valore comunque).
Intanto modifica il valore della variabile $psw all’inizio, che può essere per esempio:
undef o un valore vuoto. Avrai in questo caso:
my $psw = "";
Quindi nel chan la password non servirà più ma per il fatto che ti ho spiegato prima, se devi lanciare un comando che richiede la password come !esci, dovrai comunque passare un valore, ora uno qualsiasi perchè la variabile non ha valore. Es:
!esci Sn1p3r quellochevuoi
Ho già scritto troppo 😀
Se vuoi andare a modificare direttamente il codice per evitare completamente la password dillo che ti spiego XD
ora mi trovo bene cosi grazie 🙂 senti un’altra cosa…su una shell mac mi puoi dire come si lancia un porogramma in background? in modo che quando chiudo la shell rimanga sempre up?
Devi lanciare il programma seguito dal simbolo &, che serve proprio per mandare in background il programma lanciato, per esempio:
sid@predator:~$ processX &
A quel punto puoi anche chiudere il terminale o fare quello che devi, visto che il processo è in bg.
Ciao SiD, hai per caso un mirror del src? Il link non funziona piu :p
Eccolo: http://pastebin.com/6xiGfPZh
Oramai ho lasciato perdere la programmazione, ma come vedi il blog l’ho tenuto. Anche se è inutile a questo punto 🙂
Ciao!