Найти - Пользователи
Полная версия: Консольный чекер proxy/socks4/socks5 на python
Начало » Python для экспертов » Консольный чекер proxy/socks4/socks5 на python
1
gromozeka
Требуется написать многопоточный (от 10 тыс. потоков) консольный чекер proxy/socks4/socks5 на python.
Предложения жду в личку (контакты, цена, сроки).
Желательна голосовая связь по скайпу.
iho
> (от 10 тыс. потоков)
Лол. Оно не будет работать.
gromozeka
Лох!
Один вариант, сляпанный на коленке на 5 тыс. потоков уже работает прямо в эту минуту
Плюс есть это “старье”:
#!/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
Но хочется максимально нового и максимально эффективного!
Iskatel
хоть “5 тыс” хоть 10… с такой же скоростью будет работать если их всего 100. Ты упираешься во время ответа серваков (прокси и проверяющего) Для ускорения надо кластер VPS строить и по нему все разносить, но это другая история, и другие деньги.
gromozeka
Никогда не понимал “недалеких умников”(iho) и “далеких теоретиков”(Iskatel)
В голову еще приходит поговорка про “затычки кое где”!
Но развивать данную мысль прилюдно не буду, и так всем все понятно
Kixiro
Что толку от количества потоков, когда в python потоки не настоящие. Нужно в несколько процессов писать, но их явно не 10тыс и не 5тыс должно быть, тут уже подход другой нужен.
doza_and
gromozeka
Требуется написать многопоточный (от 10 тыс. потоков)
gromozeka
на python.
gromozeka
Никогда не понимал “недалеких умников”(iho) и “далеких теоретиков”(Iskatel)
gromozeka
Но хочется максимально нового и максимально эффективного!
И я не понимаю умников которые в Т.З. несущественные детали реализации пишут вместо конкретики по производительности системы.
gromozeka
Непонтяливые, типа doza_and всегда жуют сопли и постоянно сидят без денег
Задолбала тупая школота.
Топик можно закрывать!
FishHook
Топик закрыт, автор забанен. Ищу другой сайт, с умной школотой.

PS: вот ведь незадача, не моя ветка.

PPS поправил
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB