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
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