Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Multithreading Sock's Cheker [Python Script] |

17.12.2008, 23:10
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме: 4037638
Репутация:
1821
|
|
Multithreading Sock's Cheker [Python Script]
Multithreading Sock's Cheker
PHP код:
#!/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 = 250 # максимальное число потоков
q = Queue.Queue()
good_prox = []
def AboutScript():
print """
###############About################
# #
# [Sock's cheker]Script v #
# #
#___c0ded by De-visible____________#
#___GreetZ to antichat.ru__________#
#___ICQ: 22-3333-575_______________#
#___special for antichat's users___#
#___(c)2008________________________#
####################################
\n\n"""
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
P.S. задание....
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|