Показать сообщение отдельно

  #6  
Старый 12.12.2008, 02:51
presidentua
Постоянный
Регистрация: 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, 
focount_theadcount_good_proxy
  
while ( len(list)>):
    
proxy = list.pop()
    
wf StringIO.StringIO()
    
pycurl.Curl()
    
c.setopt(pycurl.USERAGENT'Opera/9.50 (X11; Linux i686; U; ru)')
    
c.setopt(pycurl.FOLLOWLOCATION0)
    
c.setopt(pycurl.CONNECTTIMEOUTsys.argv[5])
    
c.setopt(pycurl.URLsys.argv[4])
    
c.setopt(pycurl.WRITEFUNCTIONwf.write)
    
c.setopt(pycurl.PROXYTYPE,pycurl.PROXYTYPE_SOCKS5)
    
c.setopt(pycurl.HTTPPROXYTUNNEL1)
    
c.setopt(pycurl.PROXYproxy)
    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 ( 
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.FOLLOWLOCATION0)
  
curl.setopt(pycurl.CONNECTTIMEOUTsys.argv[5])
  
curl.setopt(pycurl.URLsys.argv[4])
  
curl.setopt(pycurl.WRITEFUNCTIONtemp.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() 
 
Ответить с цитированием