Простейший чекер, ftp акки кидать в ftp.txt вида ftp.narod.ru:21|user|password.Порт указывать обязательно.В начале скрипта можно установить количество потоков,разделитель и таймаут.Если при подключении к ftp возникает ошибка, то аккаунт попадает в bad.txt, иначе в good.Ошибками может служить:таймаут подключения,неправильный логин и т.д.
# coding:utf-8 # author: Rushter # site: http://klipner.ru from ftplib import FTP import Queue import threading import urllib import time queue = Queue.Queue() lock = threading.RLock() threads_count = 10 separator = "|" timeout = 3 def worker(): global queue while True: try: target = queue.get_nowait() except Queue.Empty: return check(target) def write(data,s): lock.acquire() if s: put = open("good.txt","a") elif not s: put = open("bad.txt","a") put.write(data+"\n") put.close() lock.release() def check(qq): qq = qq.strip("\r\n").split(separator) host = qq[0] host,port = urllib.splitport(host) ftp = FTP() try: ftp.connect(host, port, timeout) ftp.login(qq[1],qq[2]) write("|".join(qq),True) ftp.close() except: write("|".join(qq),False) def main(): print "Check started" file = open("ftp.txt").readlines() for f in file: queue.put(f) for _ in xrange(threads_count): thread_ = threading.Thread(target=worker) thread_.start() while threading.active_count() >1: time.sleep(1) print "DONE" main()