def command_unsetg(args): if len(args.split(' ')) == 2: parse = args.split(' ') if parse[0] == 'proxy': optProxy.__set__(None) else: LOGGER.warning('Please input unsetg <proxy>')
def register_option(self, key, value): if key in self.option.keys(): if value: self.option[key]['Current Setting'] = value print(f'{key} => {value}') else: msg = f'Please input {key}\'s value' LOGGER.warning(msg)
def __set__(self, value): if 'http://' in value: self.value = value LOGGER.info(f'proxy => {self.value}') elif 'socks5://' in value: self.value = value LOGGER.info(f'proxy => {self.value}') else: LOGGER.warning('Support only http:// or socks5://') self.value = None
def check_run(self): # 运行前检查必填参数 options = self.current_module.option for k, v in options.items(): c_set = v['Current Setting'] required = v['Required'] if not c_set and required == 'yes': LOGGER.warning(f'{k} is not set!') return False return True
def command_search(args): if len(args.split(' ')) == 1: keyword = args.split(' ')[0] result = module_manager.search_module(keyword) if not result: msg = f'search {keyword} not found' LOGGER.info(msg) else: search_style(result) else: LOGGER.warning('Please input search <keyword>')
async def send_request_cgi(self, method, url, **kwargs): kwargs.setdefault('timeout', self.http_timeout) kwargs.setdefault('headers', self.http_headers) kwargs.setdefault('verify_ssl', self.verify_ssl) kwargs.setdefault('allow_redirects', self.http_allow_redirects) kwargs.setdefault('proxy', self.proxy) # 连接数限制 禁止dns缓存 conn = aiohttp.TCPConnector(use_dns_cache=False) try: # async with asyncio.Semaphore(rate): async with aiohttp.ClientSession(connector=conn) as session: # async with aiohttp.ClientSession(connector=conn) as session: resp = await session.request(method, url, **kwargs) LOGGER.debug(f'Requests: {method} {url}', self.debug) text = await resp.text() content = await resp.read() stream_content = await resp.content.read() resp = { 'code': resp.status, 'text': text, 'content': content, 'url': resp.url, 'stream_content': stream_content, 'headers': resp.headers, 'cookie': resp.cookies } LOGGER.debug(http_response_style(resp['code'], resp['headers'], resp['text'], resp['content'], resp['stream_content']), self.debug) return resp except aiohttp.ClientConnectorError: LOGGER.error(f'{url} Error: ConnectionError') except aiohttp.ServerDisconnectedError: LOGGER.error(f'{url} Error: ServerDisconnectedError') except aiohttp.InvalidURL: LOGGER.error(f'Invalid URL format: {url}') except socket.error as e: LOGGER.warning(e) except KeyboardInterrupt: LOGGER.warning('Module has been stopped') except asyncio.TimeoutError as e: pass except Exception as e: LOGGER.exception(e) return None
def get_options(self, key): try: return self.option[key]['Current Setting'] except KeyError: msg = f'{key} not found' LOGGER.warning(msg)