-
-
Save mylamour/9344741199a7f98e848d6ee25c668a57 to your computer and use it in GitHub Desktop.
check http proxy mutli thread
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import queue | |
import threading | |
import requests | |
import random | |
import re | |
from colorama import Fore,Back,Style | |
hostsfile = './ip.list' | |
result = [] | |
uqueue = queue.Queue() | |
USER_AGENT_LIST = [ | |
{'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/28.0.1469.0 Safari/537.36'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/28.0.1469.0 Safari/537.36'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:35.0) Gecko/20100101 Firefox/35.0'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0'}, | |
{'User-agent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Maxthon 2.0)'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML like Gecko) Maxthon/4.0.0.2000 Chrome/22.0.1229.79 Safari/537.1'}, | |
{'User-agent': 'Opera/9.80 (Windows NT 6.1; U; en) Presto/2.7.62 Version/11.01'}, | |
{'User-agent': 'Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14'}, | |
{'User-agent': 'Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.16'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.12 Safari/537.36 OPR/14.0.1116.4'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.29 Safari/537.36 OPR/15.0.1147.24 (Edition Next)'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 OPR/18.0.1284.49'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36 OPR/19.0.1326.56'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36 OPR/20.0.1387.91'}, | |
{'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5'}, | |
{'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.2; es-US ) AppleWebKit/540.0 (KHTML like Gecko) Version/6.0 Safari/8900.00'}, | |
{'User-agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.71 (KHTML like Gecko) WebVideo/1.0.1.10 Version/7.0 Safari/537.71'} | |
] | |
def get_random_header(): | |
return random.choice(USER_AGENT_LIST) | |
def get_hosts(hostsfile): | |
hosts = [] | |
with open(hostsfile) as f: | |
for proxyurl in f.readlines(): | |
proxyurl = proxyurl.strip('\r\n') | |
hosts.append({"http": "http://{}".format(proxyurl), | |
"https": "https://{}".format(proxyurl)}) | |
return hosts | |
class ThreadUrl(threading.Thread): | |
def __init__(self, uqueue): | |
threading.Thread.__init__(self) | |
self.uqueue = uqueue | |
def run(self): | |
while True: | |
proxy_info = self.uqueue.get() | |
try: | |
header = get_random_header() | |
req = requests.get("http://google.com", proxies=proxy_info, headers=header,timeout=3) | |
# If not get req , it will go to exception | |
# print(req.content) | |
if re.findall("google",req.content): | |
print(Fore.GREEN+"[+]"+Fore.RESET+proxy_info.get('http')) | |
result.append(('OK',proxy_info)) | |
except Exception as e: | |
# print(e) | |
pass | |
self.uqueue.task_done() | |
import time | |
start = time.time() | |
def proxycheck(): | |
for i in range(50): | |
t = ThreadUrl(uqueue) | |
t.setDaemon(True) | |
t.start() | |
hosts = get_hosts(hostsfile) | |
for host in hosts: | |
uqueue.put(host) | |
uqueue.join() | |
proxycheck() | |
for res in result: | |
with open('output.list','a') as o: | |
o.write(res) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment