03.03Простейший многопоточный чекер ftp
Простейший чекер, 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()
Категория:
Programming, cheker, ftp, Python
Прямо таки совпадение какое то)
Traceback (most recent call last):
File «checker.py», line 52, in ?
main()
File «checker.py», line 49, in main
while threading.active_count() >1:
AttributeError: ‘module’ object has no attribute ‘active_count’
Check started
Traceback (most recent call last):
File «p.py», line 52, in
main()
File «p.py», line 49, in main
while threading.active_count() >1:
AttributeError: ‘module’ object has no attribute ‘active_count’
Подскажите, в чем может быть проблема – запускаю скрипт на денвере (Питон 2.5), выдает ошибку 500.
Спасибо вам.