def request_callback(future, index, datas): result = future.result() if isinstance(result, BaseException): logger.log('TRACE', result.args) name = utils.get_classname(result) datas[index]['reason'] = name + ' ' + str(result) datas[index]['valid'] = 0 elif isinstance(result, tuple): resp, text = result datas[index]['reason'] = resp.reason datas[index]['status'] = resp.status if resp.status == 400 or resp.status >= 500: datas[index]['valid'] = 0 else: datas[index]['valid'] = 1 headers = resp.headers banner = str({ 'Server': headers.get('Server'), 'Via': headers.get('Via'), 'X-Powered-By': headers.get('X-Powered-By') }) datas[index]['banner'] = banner[1:-1] title = get_title(text).strip() datas[index]['title'] = utils.remove_string(title) datas[index]['header'] = str(dict(headers))[1:-1] datas[index]['response'] = utils.remove_string(text)
def request_callback(future, index, datas): result = future.result() if isinstance(result, BaseException): logger.log('TRACE', result.args) name = utils.get_classname(result) datas[index]['reason'] = name + ' ' + str(result) datas[index]['request'] = 0 datas[index]['alive'] = 0 elif isinstance(result, tuple): resp, text = result datas[index]['reason'] = resp.reason datas[index]['status'] = resp.status if resp.status == 400 or resp.status >= 500: datas[index]['request'] = 0 datas[index]['alive'] = 0 else: datas[index]['request'] = 1 datas[index]['alive'] = 1 headers = resp.headers datas[index]['banner'] = utils.get_sample_banner(headers) datas[index]['header'] = str(dict(headers))[1:-1] if isinstance(text, str): title = get_title(text).strip() datas[index]['title'] = utils.remove_invalid_string(title) datas[index]['response'] = utils.remove_invalid_string(text)
def request_callback(future, index, datas): resp, text = future.result() if isinstance(resp, BaseException): exception = resp logger.log('TRACE', exception.args) name = utils.get_classname(exception) datas[index]['reason'] = name + ' ' + str(exception) datas[index]['request'] = 0 datas[index]['alive'] = 0 else: datas[index]['reason'] = resp.reason datas[index]['status'] = resp.status datas[index]['request'] = 1 if resp.status == 400 or resp.status >= 500: datas[index]['alive'] = 0 else: datas[index]['alive'] = 1 headers = resp.headers if settings.enable_banner_identify: datas[index]['banner'] = utils.get_sample_banner(headers) datas[index]['header'] = json.dumps(dict(headers)) history = resp.history datas[index]['history'] = json.dumps(get_jump_urls(history)) if isinstance(text, str): title = get_title(text).strip() datas[index]['title'] = utils.remove_invalid_string(title) datas[index]['response'] = utils.remove_invalid_string(text)
def resolve_callback(future, index, datas): """ 解析结果回调处理 :param future: future对象 :param index: 下标 :param datas: 结果集 """ hostname, answer = future.result() if isinstance(answer, BaseException): logger.log('TRACE', answer.args) name = utils.get_classname(answer) datas[index]['reason'] = name + ' ' + str(answer) datas[index]['valid'] = 0 elif isinstance(answer, tuple): ips = answer[2] datas[index]['ips'] = str(ips)[1:-1]
def request_callback(future, index, datas): resp, text = future.result() if isinstance(resp, BaseException): exception = resp logger.log('TRACE', exception.args) name = utils.get_classname(exception) datas[index]['reason'] = name + ' ' + str(exception) datas[index]['request'] = 0 datas[index]['alive'] = 0 else: datas[index]['reason'] = resp.reason datas[index]['status'] = resp.status datas[index]['request'] = 1 if resp.status == 400 or resp.status >= 500: datas[index]['alive'] = 0 else: datas[index]['alive'] = 1 headers = resp.headers # datas[index]['banner'] = utils.get_sample_banner(headers) 采用webanalyzer的指纹识别 原banner识别弃用 datas[index]['header'] = json.dumps(dict(headers)) if isinstance(text, str): title = get_title(text).strip() datas[index]['title'] = utils.remove_invalid_string(title) datas[index]['response'] = utils.remove_invalid_string(text)