ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

pyCheckProxy – прокси чекер на Python
  #1  
Старый 08.12.2009, 17:12
H1Z
Участник форума
Регистрация: 23.03.2007
Сообщений: 170
Провел на форуме:
1355906

Репутация: 211
Отправить сообщение для H1Z с помощью ICQ Отправить сообщение для H1Z с помощью AIM
Thumbs up pyCheckProxy – прокси чекер на Python

Версия: 0.1.
Автор: h1z.
WWW: http://www.mr-h1z.com.

Возможности:
  • Данный скрипт может проверять прокси из файлов и из списков URL’ов.
  • Скрипт является многопоточным.
  • Пока только поддерживается проверка HTTP-прокси.
  • Скрипт сам извлекает прокси из файлов, т.е. файл может содержать мусор.
Описание опций:
  • -f или --file – задаёт расположение файла со списком прокси или списком URL’ов. По умолчанию, если не задать данную опцию скрипт попытается обратится к файлу ./proxy.txt в данной директории.
  • -t или --timeout – задаёт тайм аут для сокета. По умолчанию, равен 80.
  • -c или --count – количество потоков. По умолчанию, количество равно 10.
  • -u или --urls – опция которая указывает скрипту что в файле содержатся URL’ы. По умолчанию, опция выключена
  • -o или --out – задаёт расположение файла, куда будет выводится список рабочих прокси. По умолчанию, результат выводится на экран.
Скачать pyCheckProxy.
Для работы скрипта требуется Python 2.4-2.6.

Пример запуска:
Цитата:
./check.py --file file.html --count 20 # Проверить прокси из файла file.html, используя 20 потоков
Планы на будущие:
  • Добавить GUI на PyQt4.
  • Поддержка SOCKS-прокси и проверка на анонимность.
Исходный код:
Код:
#!/usr/bin/env python
#pyCheckProxy by h1z
#version: 0.1

import urllib2, socket, re, threading, sys, getopt

_file="proxy.txt"
_threads=10
_urls=False
_out=""
_file_out=0
_timeout=80
proxyList=[]

class Proxy:
    def __init__(self, time_out=80, check_url="http://www.google.com", inside_text="<title>Google</title>"):
        self._sock=socket
        self._sock.setdefaulttimeout(time_out)
        self._check_url=check_url
        self._inside_text=inside_text
        self._proxy_buf=[]
        self._proxy_list=[]
        self._thread_count=0

    def check(self, proxy):
        try:
            proxy_handler = urllib2.ProxyHandler({'http': proxy})
            opener = urllib2.build_opener(proxy_handler)

            opener.addheaders = [('User-agent', 'Mozilla/5.0')]
            urllib2.install_opener(opener)
            req=urllib2.Request(self._check_url)
            self._sock=urllib2.urlopen(req)
            if (self._sock.read().index(self._inside_text))>=0:
                return True
        except:
            return False
        return True

    def check_all(self, proxy_list=[], thread_count=10):
        if type([])==type(proxy_list) and len(proxy_list)>0:
            self._proxy_list=[]
            self._proxy_buf=proxy_list
            self._thread_count=thread_count
            for i in range(thread_count):
                thr=threading.Thread(target=self._thread_check, name=str(i))
                thr.start();
            while (self._thread_count>0):
                pass
            return self._proxy_list

    def _thread_check(self):
        while (len(self._proxy_buf)>0):
            try:
                item=self._proxy_buf.pop()
                if self.check(item):
                    self._proxy_list.append(item)
            except:
                pass
        self._thread_count-=1

def _usage():
    print """(c) h1z, http://www.mr-h1z.com
Usage:
 ./check.py [options]
Options:
 --file - path to file[default: proxy.txt]
 --count - count of threads[default: 10]
 --urls - file inside urls[default: false]
 --out - file to output[default: stdout]
 --timeout - set timeout[default: 80]"""
    sys.exit(1)

def _add_to_list(text):
    global proxyList
    for _tmp in text:
        try:
            while True:
                buf=re.search("([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\:[0-9]{1,5})", _tmp)
                try:
                    proxyList.index(proxyList)
                except ValueError:
                    proxyList.append(buf.group(0))
                _tmp=_tmp[len(buf.group(0)):]
        except:
            pass

try:
    opts, args=getopt.getopt(sys.argv[1:], "uf:c:o:t:", ["urls","file=","count=","out=","timeout="])
except getopt.GetoptError:
    _usage()
for opt, arg in opts:
    if opt in ("-f","--file"):
        _file=arg
    elif opt in ("-u","--urls"):
        _urls=True
    elif opt in ("-c","--count"):
        _threads=int(arg)
    elif opt in ("-o","--out"):
        _out=arg
    elif opt in ("-t","--timeout"):
        _timeout=int(arg)
try:
    f=open(_file,'r')
except IOError:
    print "Error. File './%s' not found!" % (_file)
    sys.exit(1)
pr_list=f.readlines()
f.close()
if _urls==False:
    _add_to_list(pr_list)
else:
    for url in pr_list:
        try:
            _sock=socket
            _sock=urllib2.urlopen(urllib2.Request(url))
            _add_to_list(_sock.read().split('\n'))
        except:
            pass
p_check=Proxy(time_out=_timeout)
if len(_out)>1:
    _file_out=open(_out,'w')
if _threads>len(proxyList):
    _threads=len(proxyList)
for i in p_check.check_all(proxyList,_threads):
    if len(_out)>1:
        _file_out.write(i)
    else:
        print i
if len(_out)>1:
    _file_out.close()
Если скрипт чекает очень медленно, то попробуйте задать таймаут 20-40:
Цитата:
./check.py -t 20
 
Ответить с цитированием

  #2  
Старый 08.12.2009, 21:02
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


Отправить сообщение для razb с помощью ICQ
По умолчанию

Немного трэдом ошибся, тут компилируемые языки )
 
Ответить с цитированием

  #3  
Старый 08.12.2009, 21:13
H1Z
Участник форума
Регистрация: 23.03.2007
Сообщений: 170
Провел на форуме:
1355906

Репутация: 211
Отправить сообщение для H1Z с помощью ICQ Отправить сообщение для H1Z с помощью AIM
По умолчанию

О_о и правда, просьба модераторов перенести в другой раздел.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Proxy FAQ iv. Анонимность 75 01.05.2010 13:24
Books Python FRAGNATIC PHP, PERL, MySQL, JavaScript 1 01.11.2009 18:20
Продам акки вконтакте [FREE] Покупка, продажа, услуги в Соц. Сетях 57 27.03.2009 22:08
Proxy FAQ foreva Чужие Статьи 12 04.01.2008 12:15
Прокси: Как вас вычислить если вы под анонимным прокси Geveres Статьи 0 19.11.2005 17:02



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ