Требуется написать многопоточный (от 10 тыс. потоков) консольный чекер proxy/socks4/socks5 на python.
Предложения жду в личку (контакты, цена, сроки).
Желательна голосовая связь по скайпу.
#!/usr/bin/env python2.5 #c0ded by De-visible import pycurl import urllib import time import threading import Queue from cStringIO import StringIO import signal WORKERS = 2500 # максимальное число потоков q = Queue.Queue() good_prox = [] def AboutScript(): def check_socks5(target, ptype=None): ip, port = target.split(':') curl = pycurl.Curl() io = StringIO() curl.setopt(pycurl.URL, 'http://ya.ru/')# сайт для коннекта(проверка сокса) #curl.setopt(pycurl.VERBOSE, 1) curl.setopt(pycurl.CONNECTTIMEOUT, 5) curl.setopt(pycurl.TIMEOUT, 100)# таймаут curl.setopt(pycurl.USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11') curl.setopt(pycurl.WRITEFUNCTION, io.write) curl.setopt(pycurl.NOSIGNAL, 1) if ptype: if ptype == 'socks5': curl.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5) elif ptype == 'socks4': curl.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS4) elif ptype == 'http': curl.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_HTTP) curl.setopt(pycurl.PROXY, ip) curl.setopt(pycurl.PROXYPORT,int(port) ) try: curl.perform() except pycurl.error, msg: pass else: res = ':'.join((ip, port.strip())) good_prox.append(res) finally: curl.close() io.close() def chek_sock(ptype=None): global q while True: try: item = q.get_nowait() except Queue.Empty: break check_socks5(item, ptype) def check_proxy(servers, ptype): global q global good_prox for item in servers: q.put(item) for i in xrange(WORKERS): t = threading.Thread(target=chek_sock, args=(ptype,)) t.setDaemon(False) t.start() while threading.activeCount() != 1: time.sleep(5) else: return good_prox AboutScript() if __name__ == '__main__': #import sys #после подключения модуля можно получать путь к файлу через #командную строку f = open('sock.txt', 'r')#список sock's, здесь можно использовать #получение пути к файлу через командную строку, модуль sys good = check_proxy(f.readlines(), ptype='socks5') for p in good : print p
gromozeka
Требуется написать многопоточный (от 10 тыс. потоков)
gromozeka
на python.
gromozeka
Никогда не понимал “недалеких умников”(iho) и “далеких теоретиков”(Iskatel)
gromozekaИ я не понимаю умников которые в Т.З. несущественные детали реализации пишут вместо конкретики по производительности системы.
Но хочется максимально нового и максимально эффективного!