| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- # -*- coding: utf-8 -*-
- # !/usr/bin/env python
- """
- -------------------------------------------------
- File Name: GetFreeProxy.py
- Description : 通过关键字扫描censys.io中的疑似ip
- Author : JHao
- date: 2016/11/25
- -------------------------------------------------
- Change Activity:
- 2017/06/15: 通过关键字扫描censys.io中的疑似ip
- -------------------------------------------------
- """
- import json
- import requests
- import threading
- API_URL = "https://www.censys.io/api/v1/search/"
- UID = "45bbe9db-87c9-4256-b1f0-0509037f1e84"
- SECRET = "DqtxZX43liWHZPY0gNLkorptTCIaAgyu"
- KEY_WORD = ['Squid', 'CCProxy', 'Tinyproxy', 'Wingate', 'Pound', 'Proxy', 'Mikrotik']
- class GetFreeProxy(object):
- """
- proxy getter
- """
- def __init__(self):
- pass
- @staticmethod
- def scanner_ip():
- for key in KEY_WORD:
- print('Search Key: {key}'.format(key=key))
- t = ThreadScanner(key)
- t.start()
- class ThreadScanner(threading.Thread):
- def __init__(self, key):
- super(ThreadScanner, self).__init__()
- self.key = key
- self.query = {'query': self.key, 'page': 1, 'fields': ['ip']}
- def run(self):
- self.scanner_ip()
- def get_total_page(self):
- res = requests.post(API_URL + 'ipv4', data=json.dumps(self.query),
- auth=(UID, SECRET), timeout=30)
- res_result = res.json()
- total_page = res_result.get('metadata').get('pages', 400)
- return total_page
- def scanner_ip(self):
- total_page = self.get_total_page()
- for page in range(1, total_page):
- self.query.update({'page': page})
- try:
- res = requests.post(API_URL + 'ipv4', data=json.dumps(self.query),
- auth=(UID, SECRET), timeout=30)
- res_result = res.json()
- total_page = res_result.get('metadata').get('pages')
- ip_results = res_result.get('results')
- except Exception as e:
- ip_results = list()
- for each_ip in ip_results:
- ip = each_ip.get('ip')
- print(ip)
- if page >= total_page:
- break
- print('Key {k} page: {p}'.format(k=self.key, p=page))
- if __name__ == '__main__':
- g = GetFreeProxy()
- g.scanner_ip()
|