Perl ~ Sniper IRC Bot

24 10 2008

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) 😀


Azioni

Information

12 responses

26 10 2008
FreeX

Complimenti per il bot IRC!

P.S. Bella risposta quando si scrive Windows o Bill Gates 🙂
Ci vediamo, ciao.

26 10 2008
sid93

Grazie per il commento.
A presto, SiD ^^

29 05 2009
ILLO

salve, si puo inserire su uno spazio web e farlo partire da li?

29 05 2009
SiD

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 ^^)

27 07 2009
ScIkKoSo

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

28 07 2009
SiD

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 😉

28 07 2009
ScIkKoSo

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

29 07 2009
SiD

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

30 07 2009
ScIkKoSo

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?

30 07 2009
SiD

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.

27 01 2011
ad0

Ciao SiD, hai per caso un mirror del src? Il link non funziona piu :p

28 01 2011
SiD

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!

Lascia un commento