转载A大的,没试过
#!/usr/bin/python
import os
import subprocess
import re
import threading
import sys
import urllib2
import socket
a = 222
b = 73
c = 1
d = 1
port = 8080
THREAD = 10000
CHECK_URL = 'http://xxx.com/list_tool.ini'
CHECK_KEY = 'xxx'
PROXY_LOG = '/root/proxy_scan.txt'
lock = threading.Lock()
def proxy_check(proxy):
proxy_url = 'http://'+proxy
proxy_support = urllib2.ProxyHandler({'http': proxy_url})
opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)
r=urllib2.Request(CHECK_URL)
r.add_header("Accept-Language","zh-cn")
r.add_header("Content-Type","text/html; charset=gb2312")
r.add_header("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)")
trycount=1
while trycount<=1:
try:
f=opener.open(r)
data=f.read()
if CHECK_KEY in data:
# write to log
os.system("echo %s >> %s" % (proxy, PROXY_LOG))
return
except Exception, e:
#print e
trycount=trycount+1
if trycount>2:
return Falses
def getOneIp():
global a, b, c, d
if d == 255:
c += 1
d = 1
if c == 255:
b += 1
c = 1
if b == 255:
return False
d += 1
return "%d.%d.%d.%d" % (a, b, c, d)
def scan():
global port
if lock.acquire():
ip = getOneIp()
lock.release()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(0.6)
try:
s.connect((ip, port))
print '%s:%d open' % (ip, port)
proxy_check(ip + ':' + str(port))
s.close()
except Exception, e:
print '%s:%d close %s' % (ip, port, e)
pass
while True:
threads = []
for x in xrange(0, THREAD):
threads.append(threading.Thread(target=scan))
for t in threads:
t.start()
for t in threads:
t.join()

此处评论已关闭