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()
Спасибо, все теперь на Питоне делаешь?
Март 4th, 2010 at 13:06
Php не торт, для кросплат решений питон меня устраивает на 200%,ну ещё perl иногда балуюсь
.
Март 4th, 2010 at 17:22
Собственно дней 10 назад начал учить Python3. И в тот момент когда начал читать про модуль threading, выскочило уведомлениее RSS об этой теме.
Прямо таки совпадение какое то)
Март 5th, 2010 at 23:03
Check started
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’
Апрель 7th, 2010 at 13:30
и у меня
~# python p.py
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’
Июнь 2nd, 2010 at 13:49
Версия питона какая ?
Июнь 3rd, 2010 at 18:39
[...] 2. Чекер ftp аккаунтов Допустим, есть файл со списком ftp-аккаунтов, например к фришникам, из которых некоторая часть уже умерла. Скрипт возьмет на входе файл с аккаунтами и разложит его не два файла – список хороших аккаунтов, к которым удалось подключиться; и список плохих аккаунтов к которым подключиться не удалось. Скрипт многопоточный, Python 3. 10 wmz (имеется бесплатный аналог ) [...]
Август 7th, 2010 at 10:02
Добрый вечер
Подскажите, в чем может быть проблема – запускаю скрипт на денвере (Питон 2.5), выдает ошибку 500.
Январь 19th, 2011 at 19:37
Запускать надо просто из под интерпиртатора python, а не через денвер. Ставите интерпретатор и запускайте из консоли.
Январь 19th, 2011 at 20:04
Да, с отдельно установленного Питона все запустилось.
Спасибо вам.
Январь 19th, 2011 at 20:23