ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

[python] proxychecker
  #1  
Старый 10.05.2009, 17:30
Аватар для n4e/\@
n4e/\@
Участник форума
Регистрация: 06.05.2008
Сообщений: 161
Провел на форуме:
1289087

Репутация: 59
По умолчанию [python] proxychecker

Достаточно долго искал прокси чекер под linux, сегодня совершенно случайно наткнулся на питоновский скрипт. К сожалению он был с небольшой ошибкой, погуглив основы питона смог ее исправить.
Стало интересно решил попробовать дописать многопоточность.
Вот что получилось:
Код:
#!/usr/bin/python
import urllib2, socket
import threading, sys

# proxycheck [file] [result] [timeout] [flows]"
proxyList = []
f2 = open(sys.argv[2], "w")

socket.setdefaulttimeout(int(sys.argv[3]))

for line in file(sys.argv[1]):
    proxyList.append(line)

def is_bad_proxy(pip):    
    try:        
        proxy_handler = urllib2.ProxyHandler({'http': pip})        
        opener = urllib2.build_opener(proxy_handler)
        opener.addheaders = [('User-agent', 'Mozilla/5.0')]
        urllib2.install_opener(opener)        
        req=urllib2.Request('http://www.ya.ru')
        sock=urllib2.urlopen(req)
    except urllib2.HTTPError, e:        
        #print 'Error code: ', e.code
        return e.code
    except Exception, detail:
        #print "ERROR:", detail
        return 1
    return 0
def checkPrint(item):
    if is_bad_proxy(item):
        print "Bad Proxy", item
    else:
        print "Is working", item
        f2.write(item)
    
p = []
x = 0
for item in proxyList:
    i = 0
    while i<int(sys.argv[4]):
        p.append(i)
        item = proxyList[x]
        p[i] = threading.Thread(target=checkPrint, args=[proxyList[x]])
        p[i].start()
        i,x = i+1,x+1
f2.close
С подсветкой синтаксиса
Запускать:
programm [файл с проксями(прокся:порт)] [файл для работающих проксей] [таймаут] [порт]
Вот собственно может кому будет полезно.
P.S. Еще сегодня утром я вообще не имел представление о питоне.
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Python] вопрос/ответ. De-visible PHP, PERL, MySQL, JavaScript 708 10.06.2010 17:20
Hash Irc Bot [python] faza02 PHP, PERL, MySQL, JavaScript 1 14.03.2009 00:07
web proxychecker st.Ass PHP, PERL, MySQL, JavaScript 3 12.10.2006 16:33



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


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




ANTICHAT.XYZ