python proxy list check

python

Solution

Is this what you want?

#!/usr/bin/env python
import Queue
import threading
import urllib2
import time

input_file = 'proxylist.txt'
threads = 10

queue = Queue.Queue()
output = []

class ThreadUrl(threading.Thread):
    """Threaded Url Grab"""
    def __init__(self, queue):
        threading.Thread.__init__(self)
        self.queue = queue

    def run(self):
        while True:
            #grabs host from queue
            proxy_info = self.queue.get()

            try:
                proxy_handler = urllib2.ProxyHandler({'http':proxy_info})
                opener = urllib2.build_opener(proxy_handler)
                opener.addheaders = [('User-agent','Mozilla/5.0')]
                urllib2.install_opener(opener)
                req = urllib2.Request("http://www.google.com")
                sock=urllib2.urlopen(req, timeout= 7)
                rs = sock.read(1000)
                if '<title>Google</title>' in rs:
                    output.append(('0',proxy_info))
                else:
                    raise "Not Google"
            except:
                output.append(('x',proxy_info))
            #signals to queue job is done
            self.queue.task_done()

start = time.time()
def main():

    #spawn a pool of threads, and pass them queue instance 
    for i in range(5):
        t = ThreadUrl(queue)
        t.setDaemon(True)
        t.start()
    hosts = [host.strip() for host in open(input_file).readlines()]
    #populate queue with data   
    for host in hosts:
        queue.put(host)

    #wait on the queue until everything has been processed     
    queue.join()

main()
for proxy,host in output:
    print proxy,host

print "Elapsed Time: %s" % (time.time() - start)

Problem

i have some text file which contain proxy ip . which look like following ``` 130.14.29.111:80 130.14.29.120:80 130.159.235.31:80 14.198.198.220:8909 141.105.26.183:8000 160.79.35.27:80 164.77.196.75:80 164.77.196.78:45430 164.77.196.78:80 173.10.134.173:8081 174.132.145.80:80 174.137.152.60:8080 174.137.184.37:8080 174.142.125.161:80 ``` after processing check this proxy , then i want to marked as following ``` total number of '0' = 8 total number of 'x' = 6 percentage = alive 60% , dead 40% x 130.14.29.111:80 0 130.14.29.120:80 0 130.159.235.31:80 0 14.198.198.220:8909 0 141.105.26.183:8000 0 160.79.35.27:80 x 164.77.196.75:80 x 164.77.196.78:45430 x 164.77.196.78:80 0 173.10.134.173:8081 0 174.132.145.80:80 0 174.137.152.60:8080 x 174.137.184.37:8080 x 174.142.125.161:80 ``` how can be done with python? or some sample if anyone would help me or enlight me much aprreciate! i was edited this is script source of what i have finally check finished proxy list are saved to 'proxy_alive.txt' in this file i want to mark whether proxy element alive or not. ``` import socket import urllib2 import threading import sys import Queue import socket socket.setdefaulttimeout(7) print "Bobng's proxy checker. Using %s second timeout"%(socket.getdefaulttimeout()) #input_file = sys.argv[1] #proxy_type = sys.argv[2] #options: http,s4,s5 #output_file = sys.argv[3] input_file = 'proxylist.txt' proxy_type = 'http' output_file = 'proxy_alive.txt' url = "www.seemyip.com" # Don't put http:// in here, or any /'s check_queue = Queue.Queue() output_queue = Queue.Queue() threads = 20 def writer(f,rq): while True: line = rq.get() f.write(line+'\n') def checker(q,oq): while True: proxy_info = q.get() #ip:port if proxy_info == None: print "Finished" #quit() return #print "Checking %s"%proxy_info if proxy_type == 'http': try: listhandle = open("proxylist.txt").read().split('\n') for line in listhandle: saveAlive = open("proxy_alive.txt", 'a') details = line.split(':') email = details[0] password = details[1].replace('\n', '') proxy_handler = urllib2.ProxyHandler({'http':proxy_info}) opener = urllib2.build_opener(proxy_handler) opener.addheaders = [('User-agent','Mozilla/5.0')] urllib2.install_opener(opener) req = urllib2.Request("http://www.google.com") sock=urllib2.urlopen(req, timeout= 7) rs = sock.read(1000) if '<title>Google</title>' in rs: oq.put(proxy_info) print '[+] alive proxy' , proxy_info saveAlive.write(line) saveAlive.close() except urllib2.HTTPError,e: print 'url open error? slow?' pass except Exception,detail: print '[-] bad proxy' ,proxy_info else: # gotta be socks try: s = socks.socksocket() if proxy_type == "s4": t = socks.PROXY_TYPE_SOCKS4 else: t = socks.PROXY_TYPE_SOCKS5 ip,port = proxy_info.split(':') s.setproxy(t,ip,int(port)) s.connect((url,80)) oq.put(proxy_info) print proxy_info except Exception,error: print proxy_info threading.Thread(target=writer,args=(open(output_file,"wb"),output_queue)).start() for i in xrange(threads): threading.Thread(target=checker,args=(check_queue,output_queue)).start() for line in open(input_file).readlines(): check_queue.put(line.strip('\n')) print "File reading done" for i in xrange(threads): check_queue.put(None) raw_input("PRESS ENTER TO QUIT") sys.exit(0) ```

Original source