예제 #1
0
    def _parse_host(ihost):
        """parse host"""

        host = ParsedHost(address=ihost.address)
        cpe_note = None

        if ihost.hostnames:
            host.hostnames = list(set(ihost.hostnames))
            if not host.hostname:
                host.hostname = host.hostnames[0]

        for osmatch in ihost.os_match_probabilities():
            if osmatch.accuracy == 100:
                host.os = osmatch.name
                cpe_note = ParsedNote(host_handle=host.handle,
                                      xtype='cpe',
                                      data=json.dumps(osmatch.get_cpe()))

        return host, cpe_note
예제 #2
0
파일: parser.py 프로젝트: bodik/sner4
    def _parse_host(cls, report_item):
        """parse host data from report item"""

        host = ParsedHost(address=report_item['host-ip'])

        hostnames = []
        if 'host-fqdn' in report_item:
            hostnames.append(report_item['host-fqdn'])
        # host-rdns might contain address
        if ('host-rdns' in report_item) and (not cls.is_addr(
                report_item['host-rdns'])):
            hostnames.append(report_item['host-rdns'])
        hostnames = list(set(hostnames))

        if hostnames:
            host.hostnames = hostnames
            if not host.hostname:
                host.hostname = host.hostnames[0]

        if 'operating-system' in report_item:
            host.os = report_item['operating-system']

        return host