.: HosiriS :.

Informatica e non solo

Ripassiamo un pò: IRC + python

Posted by hosiris su febbraio 4, 2010

Mentre aspetto gli ultimi pezzi (forse stanno arrivando) preso dallo sconforto… totalmente annullato mentalmente… ho deciso di dare una ripassatina a cose messe da parte tanto tempo fa!
Ripasserò un pò di python e di network programming e quale miglior modo di un semplice bot irc???
Il programma sarà di una banalità unica al mondo! In pratica non cercate alti algoritmi in questo articolo🙂
Come buon inizio, importiamo la libreria che ci serve:


#!/usr/bin/python
import socket

Adesso andiamo a definire una funzione che gestisca il protocollo IRC:


def botirc():

Adessiamo settiamo le variabili che ci servono, ma facciamoli decidere all’utente:


print ">>> Configurazione Bot >>> "
print ""
nome = raw_input ("Nome bot >>> ")
server = raw_input ("Server >>> ")
canale = raw_input ("Canale >>> ")
porta = 6667

Inizializziamo il socket e la connessione:


sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((server, porta))

Fatto questo inviamo i dati previsti dal protocollo IRC:


sock.send ("NICK %s\r\n" % (nome))
sock.send("USER 666 %s bla :%s\r\n" % (server,nome))
sock.send ("JOIN %s\r\n" % (canale))

Con il seguente ciclo rimaniamo in ascolto della porta per intercettare eventuali messaggi:

while 1:

ricev = sock.recv(1024)
print ricev
if ricev.startswith ('PING :'):


sock.send('PONG :' + ricev.split(' ')[1] + '\r\n')

Fatto questo è sufficiente richiamare la funzione per connettersi ad un qualsiasi canale in un qualsiasi server.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: