
12.12.2008, 02:51
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме: 1724067
Репутация:
806
|
|
скрипт на Питоне для многопоточного чека Соксов5
-------------------
Run as:
roastest.py input.file output.file count_theard site_test timeout
Example:
roastest.py input.txt output.txt 5 ya.ru 10
- эт в линуксе.
Для работы нужна библиотека pycurl
-----------------
PHP код:
#!/usr/bin/python
try:
import sys
except:
print 'error load library - sys'
try:
import thread
except:
print 'error load library - thread'
try:
import StringIO
except:
print 'error load library - StringIO'
try:
import pycurl
except:
print 'error load library - pycurl'
def test_socks():
global list, fo, count_thead, count_good_proxy
while ( len(list)>0 ):
proxy = list.pop()
wf = StringIO.StringIO()
c = pycurl.Curl()
c.setopt(pycurl.USERAGENT, 'Opera/9.50 (X11; Linux i686; U; ru)')
c.setopt(pycurl.FOLLOWLOCATION, 0)
c.setopt(pycurl.CONNECTTIMEOUT, sys.argv[5])
c.setopt(pycurl.URL, sys.argv[4])
c.setopt(pycurl.WRITEFUNCTION, wf.write)
c.setopt(pycurl.PROXYTYPE,pycurl.PROXYTYPE_SOCKS5)
c.setopt(pycurl.HTTPPROXYTUNNEL, 1)
c.setopt(pycurl.PROXY, proxy)
try:
c.perform()
except:
pass
c.close()
rez = wf.getvalue()
if (len(rez)>100):
fo.write(proxy)
count_good_proxy += 1
count_thead -= 1
print '''RoA SocksTest for Nerezus by PresidentUA
---------------'''
if (len(sys.argv)!=6):
print '''Run as:
roastest.py input.file output.file count_theard site_test timeout
Example:
roastest.py input.txt output.txt 5 ya.ru 10
---------------'''
sys.exit()
try:
fi = open(sys.argv[1],'r')
list = fi.readlines()
except:
print '|-| error input file '+sys.argv[1]
sys.exit()
print '|+| input file '+sys.argv[1]+' open'
try:
fo = open(sys.argv[2],'w')
except:
print '|-| error output file '+sys.argv[2]
sys.exit()
print '|+| output file '+sys.argv[2]+' open'
sys.argv[3] = int(sys.argv[3])
if ( 0 < sys.argv[3] < 100):
print '|+| create '+str(sys.argv[3])+' threads'
else:
print '|-| error create threads'
sys.exit()
sys.argv[5] = int(sys.argv[5])
if ((sys.argv[5]>=1) and (sys.argv[5]<=300)):
print '|+| good set timeout'
else:
print '|-| error set timeout'
sys.exit()
try:
temp = StringIO.StringIO()
curl = pycurl.Curl()
curl.setopt(pycurl.USERAGENT, 'Opera/9.50 (X11; Linux i686; U; ru)')
curl.setopt(pycurl.FOLLOWLOCATION, 0)
curl.setopt(pycurl.CONNECTTIMEOUT, sys.argv[5])
curl.setopt(pycurl.URL, sys.argv[4])
curl.setopt(pycurl.WRITEFUNCTION, temp.write)
curl.perform()
curl.close()
rez = temp.getvalue()
if (len(rez)>100):
print '|+| good set site url'
else:
print '|-| error set site url'
sys.exit()
except:
print '|-| error set site url'
sys.exit()
count_good_proxy = 0
count_thead = 0
for i in xrange(0,sys.argv[3]):
count_thead += 1
thread.start_new_thread(test_socks,())
while (count_thead>0):
pass
fi.close
fo.close
print '---------------'
print '|+| '+str(count_good_proxy)+' good socks. The End :)'''
sys.exit()
|
|
|