Python multi threads

Discussion in 'Programming' started by krakiuN, Oct 4, 2012.

  1. #1
    Hello all,
    Sambody i can help me please.
    I need edit this python script for working in multi threads.

    import sys, smtplib, socket, time, random 
    from smtplib import SMTP 
    from random import choice 
    
    socket.setdefaulttimeout(5)    # smtp default timeout, change number to speed up large lists 
    
    def printHelp(): 
        print '\nHow to use it ? There you go :) -- > ./SMTPv.py <accounts> <outputfile>' 
        print '\nImportant: THE SMTP ACCOUNTS MUST BE IN THE FOLLOWING FORMAT : IP:USER:PASS\n' 
    
    # Create the message 
    fromaddr = "username@yahoo.com" 
    toaddr = "someone@yahoo.com" 
    
    def rndstr(): 
       rndstr = '' 
       for x in range(0,6): rndstr += str(random.choice(range(0,5))) 
       return rndstr 
    
    rs = rndstr() 
    message = """To: %s 
    From: %s 
    Subject: %s 
    
    test SMTP mail 
    
    """ % (toaddr,fromaddr,str(rs)) 
    print "\n     _            _     _____ __  __ _______ _____        " 
    print "    | |          | |   / ____|  \/  |__   __|  __ \       " 
    print "  __| | __ _ _ __| | _| (___ | \  / |  | |  | |__) |_   __" 
    print " / _` |/ _` | '__| |/ /\___ \| |\/| |  | |  |  ___/\ \ / /" 
    print "| (_| | (_| | |  |   < ____) | |  | |  | |  | |     \ V / " 
    print " \__,_|\__,_|_|  |_|\_\_____/|_|  |_|  |_|  |_|      \_/  \n" 
    print "\n This is not stopping here! ... To be continued." 
    print "More features will be added soon." 
    print "_______________________________________________________________________" 
    
    def timer(): 
            now = time.localtime(time.time()) 
            return time.asctime(now) 
    
    def sendchk(listindex, host, user, password, info):   # seperated function for checking 
       try: 
          smtp = smtplib.SMTP(host) 
          smtp.login(user, password) 
          code = smtp.ehlo()[0] 
          if not (200 <= code <= 299): 
             raise SMTPHeloError(code, resp) 
          smtp.sendmail(fromaddr, toaddr, message) 
          print "\n\t[!] Sending successful:",host, user, password 
          print "\t[!] Message Sent Successfully\n" 
          if info != '': 
             LSstring = host+":"+user+":"+password+":"+info+"\n" 
          else: 
             LSstring = host+":"+user+":"+password+"\n" 
          nList.append(LSstring)      # special list for AMS file ID's 
          LFile = open(output, "a") 
          LFile.write(LSstring)       # save working host/usr/pass to file 
          LFile.close() 
          AMSout = open("AMSlist.txt", "a") 
          AMSout.write("[Server"+str(nList.index(LSstring))+"]\nName="+str(host)+"\nPort=25\nUserID=User\nBccSize=50\nUserName="+str(user)+"\nPassword="+str(password)+"\nAuthType=0\n\n") 
          smtp.quit() 
       except(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException), msg: 
          print "[-] Login Failed:", host, user, password 
          pass 
    
    if len(sys.argv) != 3: 
        printHelp() 
        exit(1) 
    
    # Do not change anything below. 
    accounts = sys.argv[1] 
    output = sys.argv[2] 
    
    try: 
        handle = list(open(accounts)) 
    except: 
       print"\n[+] We were unable to open the SMTP filelist. Check again your path and try again." 
       print"\n[+] Exiting...." 
    
    nList = [] 
    for line in handle: 
       host = line.split(':')[0] 
       user = line.split(':')[1].replace('\n', '') 
       if line.count(':') == 2: 
          try: 
             password = line.split(':')[2].replace('\n', '') 
             sendchk(handle.index(line), host, user, password, info='') 
          except: 
             print '\n[+] We have found a error in your accounts list' 
             print host, user 
             exit(1) 
       elif line.count(':') == 3: 
          try: 
             password = line.split(':')[2] 
             info = line.split(':')[3].replace('\n', '') 
             sendchk(handle.index(line), host, user, password, info) 
          except: 
             print '\n[+] We have found a error in your accounts list' 
             print host, user 
             exit(1) 
       else: 
          print '\n[!] IMPORTANT: THE SMTP ACCOUNTS MUST BE IN THE FOLLOWING FORMAT : IP,USER,PASS'
          print '\n[-] Exiting....\n' 
    
    print "[!] Ended at: " + timer() + "\n" 
    print "\n[!] Done!"
    Code (markup):
    Thank you.
     
    krakiuN, Oct 4, 2012 IP