def search(self, dork, pages=2): search_result = set() headers = { "X-QuakeToken": self.token, "Content-Type": "application/json" } data = {"query": dork, "size": 10, "ignore_cache": "false", "start": 1} try: for page in range(1, pages + 1): data['start'] = page url = "https://quake.360.cn/api/v3/search/quake_service" resp = requests.post(url, json=data, headers=headers, timeout=80) if resp and resp.status_code == 200 and resp.json( )['code'] == 0: content = resp.json() for match in content['data']: search_result.add("%s:%s" % (match['ip'], match['port'])) else: logger.error("[PLUGIN] Quake:{}".format(resp.text)) except Exception as ex: logger.error(str(ex)) return search_result
def new_token(self): data = '{{"username": "******", "password": "******"}}'.format(self.username, self.password) try: resp = requests.post('https://api.zoomeye.org/user/login', data = data, ) if resp.status_code != 401 and "access_token" in resp.json(): content = resp.json() self.token = content['access_token'] self.headers = {'Authorization': 'JWT %s' % self.token} return True except Exception as ex: logger.error(str(ex)) return False