def run(self):
     while True:
         ip_speed = self.consumer_queue.get()
         # print 'The google ip is ' + ip_speed[0] + ', the speed is ' + ip_speed[1]
         self.add_to_result(ip_speed)
         Logger.log('Got one good ip: ' + ip_speed[0] + ' .')
         self.consumer_queue.task_done()
Esempio n. 2
0
def wait_for_end(queues, result_lst):
    for queue in queues:
        queue.join()
        Logger.log('one finished.')
    Logger.log('all task finished.')
    result_lst.sort(cmp=lambda x, y: int(x[1] - y[1]))
    write_result_to_file(result_lst)
 def run(self):
     first_ip = self.gen_ip_by_path(self.file_path)
     while True:
         try:
             ip = next(first_ip)
             self.producer_queue.put(ip)
         except StopIteration:
             break
     Logger.log('1st producer out.')
Esempio n. 4
0
 def run(self):
     while True:
         ip = self.consumer_queue.get()
         if self.test_simple_ip(ip):
             flag, cert = self.test_ssl_ip(ip)
             if flag:
                 flag = self.test_goagent_ip(ip)
                 if flag:
                     self.producer_queue.put((ip, cert))
             else:
                 Logger.log(ip + ' is a broken ip.')
         else:
             Logger.log(ip + ' is a broken ip.')
         self.consumer_queue.task_done()
def main():
    result_lst = list()
    ip_producer = ipgen.ConfigGenerator.ConfigIpGenerator()
    ip_producer.set_file_path('./ip_list.txt')
    ip_testers = setup_all_testers()
    ip_dealer = ipdealer.OutputStdout.SimpleOutput()
    ip_dealer.set_result_lst(result_lst)
    speed_testers = setup_all_speeders()
    queues = setup_all_queues(ip_producer, ip_testers, speed_testers, ip_dealer)
    boost_up(ip_testers, speed_testers, ip_dealer)
    ip_producer.run()
    Logger.log('1st producer end ...')
    wait_for_end(queues, result_lst)
    Logger.log(result_lst)
Esempio n. 6
0
 def test_ssl_ip(ip):
     try:
         connection = socket.socket()
         connection.settimeout(TIME_OUT)
         ssl_connection = ssl.wrap_socket(connection, cert_reqs=ssl.CERT_REQUIRED, ca_certs='cacert.pem')
         ssl_connection.settimeout(TIME_OUT * 4)
         ssl_connection.connect((ip, 443))
         cert = ssl_connection.getpeercert()
         flag, subject = IpTester.judge_cert(cert)
         ssl_connection.close()
         connection.close()
         Logger.log('cert is ' + subject)
         return flag, subject
     except:
         return False, None
Esempio n. 7
0
 def test_goagent_ip(ip):
     sock = None
     ssl_sock = None
     ipaddr = (ip, 443)
     try:
         sock = socket.socket(socket.AF_INET)
         sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
         sock.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack('ii', 1, 0))
         sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 32 * 1024)
         sock.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, True)
         sock.settimeout(TIME_OUT)
         ssl_sock = ssl.wrap_socket(sock, ssl_version=3, ciphers='ECDHE-RSA-AES128-SHA',
                                    do_handshake_on_connect=False)
         ssl_sock.settimeout(TIME_OUT)
         ssl_sock.connect(ipaddr)
         ssl_sock.do_handshake()
         ssl_sock.sock = sock
         ssl_sock.settimeout(TIME_OUT)
         ssl_sock.send('HEAD /favicon.ico HTTP/1.1\r\nHost: %s\r\n\r\n' % hostname)
         response = httplib.HTTPResponse(ssl_sock, buffering=True)
         try:
             response.begin()
             if hostname.endswith('.appspot.com') and 'Google' not in response.getheader('server', ''):
                 raise socket.timeout('timed out')
         except:
             ssl_sock.close()
             raise socket.timeout('timed out')
         finally:
             Logger.log('Server is ' + response.getheader('server', ''))
             response.close()
         return True
     except:
         if ssl_sock:
             ssl_sock.close()
         if sock:
             sock.close()
         return False
Esempio n. 8
0
def main():
    gen = segen.Generator.SegGenerator()
    seg_lst = get_google_ip_range()
    result_lst = list()

    ip_producer = FileGenerator.IpGenerator()
    ip_producer.set_seg_list(seg_lst)

    ip_testers = setup_all_testers()
    ip_dealer = ipdealer.OutputStdout.SimpleOutput()
    ip_dealer.set_result_lst(result_lst)
    speed_testers = setup_all_speeders()
    queues = setup_all_queues(ip_producer, ip_testers, speed_testers, ip_dealer)
    boost_up(ip_testers, speed_testers, ip_dealer)
    ip_producer.run()
    Logger.log('1st producer end ...')
    wait_for_end(queues, result_lst)
    Logger.log(result_lst)
    Logger.finish()