Esempio n. 1
0
 def __init__(self, userGiven=False, flag=None, log=False, proxyType=None):
     self._FLAG = flag
     self._UG = userGiven
     if log:
         self._FILEDESC = open(log, 'w')
     if not self._UG:
         self.scraper = ProxyScraper()
         self._proxies = self.scraper.getProxies()
         for key in self._proxies.keys():
             self.handleIPs(key)
     else:
         if self._UG.find(':') != -1:
             # Single proxy mode
             self._proxy = tuple(self._UG.split(':'))
             self.checkSingle(proxyType)
         else:
             # Proxy list mode
             self.lhandler = ListHandler(self._UG, proxyType)
             self._proxies = self.lhandler.getProxies()
             self.handleIPs(proxyType)
     if log:
         self._FILEDESC.close()
Esempio n. 2
0
class ProxyTester(object):
    # tests whether the give proxies are working
    _proxies = { 'socks5' : [], 'socks4' : [], 'mixedSocks' : [], 'http' : [], 
                'unknown': [] }
    # In case of user-given proxies 'mixedSocks' will handle all requests for either
    # HTTP proxies, or unknown proxy types
    _queues = {'socks5' : Queue.Queue(), 'socks4' : Queue.Queue(), 'mixedSocks' : Queue.Queue(), 
               'http' : Queue.Queue(), 'unknown' : Queue.Queue()}
    _THREADS_PER_TYPE = 10
    _FILEDESC = None
    def __init__(self, userGiven = False, flag = None, log = False, proxyType = None):
        self._FLAG = flag
        self._UG = userGiven
        if log:
                self._FILEDESC = open(log, 'w')
        if not self._UG:
            self.scraper = ProxyScraper()
            self._proxies = self.scraper.getProxies()
            for key in self._proxies.keys():
                self.handleIPs(key)
        else:
            if self._UG.find(':') != -1:
                # Single proxy mode
                self._proxy = tuple(self._UG.split(':'))
                self.checkSingle(proxyType)
            else:
                # Proxy list mode
                self.lhandler = ListHandler(self._UG, proxyType)
                self._proxies = self.lhandler.getProxies()
                self.handleIPs(proxyType)
        if log:
            self._FILEDESC.close()
    def checkSingle(self, proxyType):
        self._queues[proxyType].put(self._proxy)
        worker = ProxyTestWorker(self._queues[proxyType], proxyType, self._FLAG, self._FILEDESC, True)
        worker.daemon = True
        worker.start()
        self._queues[proxyType].join()
    def handleIPs(self, proxyType):
        isUserGiven = True if self._UG else False
        for lst in self._proxies[proxyType]:
            if isUserGiven:
                self._queues[proxyType].put((lst[0], lst[1]))
            else:
                for ip, port in lst:
                    self._queues[proxyType].put((ip, port))
        for i in range(self._THREADS_PER_TYPE):
            worker = ProxyTestWorker(self._queues[proxyType], proxyType, self._FLAG, self._FILEDESC, isUserGiven)
            worker.daemon = True
            worker.start()
        self._queues[proxyType].join()
Esempio n. 3
0
 def __init__(self, userGiven = False, flag = None, log = False, proxyType = None):
     self._FLAG = flag
     self._UG = userGiven
     if log:
             self._FILEDESC = open(log, 'w')
     if not self._UG:
         self.scraper = ProxyScraper()
         self._proxies = self.scraper.getProxies()
         for key in self._proxies.keys():
             self.handleIPs(key)
     else:
         if self._UG.find(':') != -1:
             # Single proxy mode
             self._proxy = tuple(self._UG.split(':'))
             self.checkSingle(proxyType)
         else:
             # Proxy list mode
             self.lhandler = ListHandler(self._UG, proxyType)
             self._proxies = self.lhandler.getProxies()
             self.handleIPs(proxyType)
     if log:
         self._FILEDESC.close()
Esempio n. 4
0
class ProxyTester(object):
    # tests whether the give proxies are working
    _proxies = {
        'socks5': [],
        'socks4': [],
        'mixedSocks': [],
        'http': [],
        'unknown': []
    }
    # In case of user-given proxies 'mixedSocks' will handle all requests for either
    # HTTP proxies, or unknown proxy types
    _queues = {
        'socks5': Queue.Queue(),
        'socks4': Queue.Queue(),
        'mixedSocks': Queue.Queue(),
        'http': Queue.Queue(),
        'unknown': Queue.Queue()
    }
    _THREADS_PER_TYPE = 10
    _FILEDESC = None

    def __init__(self, userGiven=False, flag=None, log=False, proxyType=None):
        self._FLAG = flag
        self._UG = userGiven
        if log:
            self._FILEDESC = open(log, 'w')
        if not self._UG:
            self.scraper = ProxyScraper()
            self._proxies = self.scraper.getProxies()
            for key in self._proxies.keys():
                self.handleIPs(key)
        else:
            if self._UG.find(':') != -1:
                # Single proxy mode
                self._proxy = tuple(self._UG.split(':'))
                self.checkSingle(proxyType)
            else:
                # Proxy list mode
                self.lhandler = ListHandler(self._UG, proxyType)
                self._proxies = self.lhandler.getProxies()
                self.handleIPs(proxyType)
        if log:
            self._FILEDESC.close()

    def checkSingle(self, proxyType):
        self._queues[proxyType].put(self._proxy)
        worker = ProxyTestWorker(self._queues[proxyType], proxyType,
                                 self._FLAG, self._FILEDESC, True)
        worker.daemon = True
        worker.start()
        self._queues[proxyType].join()

    def handleIPs(self, proxyType):
        isUserGiven = True if self._UG else False
        for lst in self._proxies[proxyType]:
            if isUserGiven:
                self._queues[proxyType].put((lst[0], lst[1]))
            else:
                for ip, port in lst:
                    self._queues[proxyType].put((ip, port))
        for i in range(self._THREADS_PER_TYPE):
            worker = ProxyTestWorker(self._queues[proxyType], proxyType,
                                     self._FLAG, self._FILEDESC, isUserGiven)
            worker.daemon = True
            worker.start()
        self._queues[proxyType].join()