def open_from_file(self, path): """Loads a scan from the given file.""" from zenmapCore.NmapParser import NmapParser parsed = NmapParser(path) parsed.parse() self.add_scan(parsed, path)
def open_from_dir(self, path): """Loads all scans from the given directory into the network inventory.""" from zenmapCore.NmapParser import NmapParser for filename in os.listdir(path): fullpath = os.path.join(path, filename) if os.path.isdir(fullpath): continue parsed = NmapParser(fullpath) parsed.parse() self.add_scan(parsed, filename=fullpath)
def load_from_file(self, filename): """Load scan results from a saved file.""" parsed = NmapParser() parsed.parse(filename) parsed.unsaved = False self.update_target_profile(parsed) self.inventory.add_scan(parsed, filename=filename) self.update_ui() i = self.scans_store.add_scan(parsed) log.info("scans_store.add_scan") self.scan_result.scan_result_notebook.nmap_output.set_active_iter(i) self.scan_result.change_to_ports_hosts_tab()
def __init__(self): SearchResult.__init__(self) log.debug(">>> Getting scan results stored in data base") self.scan_results = [] from zenmapCore.UmitDB import UmitDB u = UmitDB() for scan in u.get_scans(): log.debug(">>> Retrieving result of scans_id %s" % scan.scans_id) log.debug(">>> Nmap xml output: %s" % scan.nmap_xml_output) try: buffer = StringIO.StringIO(scan.nmap_xml_output) parsed = NmapParser() parsed.parse(buffer) buffer.close() except Exception, e: log.warning(">>> Error loading scan with ID %u from database: %s" % (scan.scans_id, str(e))) else: self.scan_results.append(parsed)
filename = mktemp() for parsed in self.get_scans(): f = open(filename, "w") parsed.write_xml(f) f.close() scan = Scans(scan_name = parsed.scan_name, nmap_xml_output = open(filename).read(), date = time()) if __name__ == "__main__": from zenmapCore.NmapParser import NmapParser scan1 = NmapParser("/home/ndwi/scanz/neobee_1.xml") scan1.parse() scan2 = NmapParser("/home/ndwi/scanz/scanme_nmap_org.usr") scan2.parse() inventory1 = NetworkInventory() inventory1.add_scan(scan1) inventory1.add_scan(scan2) for host in inventory1.get_hosts(): print "%s" % host.ip["addr"], #if len(host.hostnames) > 0: # print "[%s]:" % host.hostnames[0]["hostname"] #else: # print ":" #for port in host.ports[0]["port"]: # print " %s: %s" % (port["portid"], port["port_state"])