当前位置: 首页>>代码示例>>Python>>正文


Python Reporter.start_report方法代码示例

本文整理汇总了Python中reporter.Reporter.start_report方法的典型用法代码示例。如果您正苦于以下问题:Python Reporter.start_report方法的具体用法?Python Reporter.start_report怎么用?Python Reporter.start_report使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在reporter.Reporter的用法示例。


在下文中一共展示了Reporter.start_report方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: Scanner

# 需要导入模块: from reporter import Reporter [as 别名]
# 或者: from reporter.Reporter import start_report [as 别名]

#.........这里部分代码省略.........
		passive_testclass_key = "%s.%s" % (getmodule(passive_testclass).__name__, passive_testclass.__name__)
                result["passive"][passive_testclass_key] = self.do_passive_scan(passive_testclass, is_ssl, response)
                self.reporter.write_passive(passive_testclass, result["passive"][passive_testclass_key])
            self.reporter.end_passives()
        return result

    def scan_target(self, target):
        ''' iterate over registered tests and deligate for scan '''
        self.reporter.write_target(target)
        Scanner.logger.info("[%s] scanning:" % target)
        url = urlparse(target)
        is_ssl = url.scheme == "https"
        self.results = {}
        self.reporter.start_actives()
        self.active_tests_stack = self._active_tests_
        while len(self.active_tests_stack) > 0:
            testclass = self.active_tests_stack[0]
            self.active_tests_stack = self.active_tests_stack[1:]
	    testclass_key = "%s.%s" % (getmodule(testclass).__name__, testclass.__name__)
            self.results[testclass_key] = self.do_active_scan(testclass, is_ssl, target)
            if hasattr(testclass, 'events'): #TODO enforce every test to have event dict present?
                events_lower = dict([(k.lower(),v) for k,v in testclass.events.items()])
                if self.results[testclass_key]['state'].lower() in events_lower and events_lower[self.results[testclass_key]['state'].lower()] != None:
                   nexttest = events_lower[self.results[testclass_key]['state'].lower()]
                   Scanner.logger.info("\t[%s] Instantiated because %s declares it as its successor (the event was '%s')" %  (nexttest, testclass, self.results[testclass_key]['state']))
                   self.active_tests_stack.append(nexttest) # we have to hand over the response!!1, # important: we hand over an instance, not the class
            self._finished_active_tests_.append(testclass)
        self.reporter.end_actives()
        return self.results

    def run_scan(self):
        ''' iterate over target and deligate to list of tests '''
        results = {}
        self.reporter.start_report()
        self.reporter.start_targets()
        if len(self._targets_) == 0:
            Scanner.logger.error('No targets configured.')
            return
        for target in self._targets_:
            try:
                results[target] = self.scan_target(target)
            except:
                Scanner.logger.error(traceback.format_exc())
        self.reporter.end_targets()
	result = self.reporter.end_report(results)
	if (self.output == "-"):
	 print result
	else:
         file = open(self.output, "w")
         file.write(self.reporter.end_report(results))
         file.close()


    def register_target(self, url):
        ''' add target to the scanning engine '''
        u = urlparse(url)
        valid = u.netloc != "" and u.scheme in self._protos_
        reason = "%s%s" % ("[bad netloc]" if u.netloc == "" else "", "" if u.scheme in self._protos_ else "[bad scheme]")

        # todo - support ipv6 urls
        host = u.netloc.split(':')[0]
        if (self.resolve_target):
            try:
                socket.getaddrinfo(host, None)
            except socket.gaierror:
                valid = False
开发者ID:Prandium,项目名称:Garmr,代码行数:70,代码来源:scanner.py


注:本文中的reporter.Reporter.start_report方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。