def __init__(self, search_directory, file_extensions=["usr"]): SearchResult.__init__(self) log.debug(">>> SearchDir initialized") self.search_directory = search_directory if isinstance(file_extensions, StringTypes): self.file_extensions = file_extensions.split(";") elif isinstance(file_extensions, list): self.file_extensions = file_extensions else: raise Exception("Wrong file extension format! '%s'" % file_extensions) log.debug(">>> Getting directory's scan results") self.scan_results = [] files = [] for ext in self.file_extensions: files += glob(os.path.join(self.search_directory, "*.%s" % ext)) log.debug(">>> Scan results at selected directory: %s" % files) for scan_file in files: log.debug(">>> Retrieving scan result %s" % scan_file) if os.access(scan_file, os.R_OK) and os.path.isfile(scan_file): try: parsed = NmapParser() parsed.parse_file(scan_file) except Exception: pass else: self.scan_results.append(parsed)
def __init__(self, filenames): SearchResult.__init__(self) self.scan_results = [] for filename in filenames: scan = NmapParser() scan.parse_file(filename) self.scan_results.append(scan)
def open_file(self, widget): file_chooser = ResultsFileSingleChooserDialog(_("Select Scan Result")) response = file_chooser.run() file_chosen = file_chooser.get_filename() file_chooser.destroy() if response == gtk.RESPONSE_OK: try: parser = NmapParser() parser.parse_file(file_chosen) except xml.sax.SAXParseException, e: alert = HIGAlertDialog( message_format='<b>%s</b>' % _('Error parsing file'), secondary_text=_( "The file is not an Nmap XML output file. " "The parsing error that occurred was\n%s") % str(e)) alert.run() alert.destroy() return False except Exception, e: alert = HIGAlertDialog( message_format='<b>%s</b>' % _( 'Cannot open selected file'), secondary_text=_("""\ This error occurred while trying to open the file: %s""") % str(e)) alert.run() alert.destroy() return False
def open_file(self, widget): file_chooser = ResultsFileSingleChooserDialog(_("Select Scan Result")) response = file_chooser.run() file_chosen = file_chooser.get_filename() file_chooser.destroy() if response == gtk.RESPONSE_OK: try: parser = NmapParser() parser.parse_file(file_chosen) except xml.sax.SAXParseException as e: alert = HIGAlertDialog( message_format='<b>%s</b>' % _('Error parsing file'), secondary_text=_( "The file is not an Nmap XML output file. " "The parsing error that occurred was\n%s") % str(e)) alert.run() alert.destroy() return False except Exception as e: alert = HIGAlertDialog(message_format='<b>%s</b>' % _('Cannot open selected file'), secondary_text=_("""\ This error occurred while trying to open the file: %s""") % str(e)) alert.run() alert.destroy() return False scan_name = os.path.split(file_chosen)[-1] self.add_scan(scan_name, parser) self.combo_scan.set_active(len(self.list_scan) - 1)
def __init__(self, filenames): SearchResult.__init__(self) self.scan_results = [] for filename in filenames: scan = NmapParser() scan.parse_file(filename) self.scan_results.append(scan)
def __init__(self, search_directory, file_extensions=["usr"]): SearchResult.__init__(self) log.debug(">>> SearchDir initialized") self.search_directory = search_directory if isinstance(file_extensions, StringTypes): self.file_extensions = file_extensions.split(";") elif isinstance(file_extensions, list): self.file_extensions = file_extensions else: raise Exception( "Wrong file extension format! '%s'" % file_extensions) log.debug(">>> Getting directory's scan results") self.scan_results = [] files = [] for ext in self.file_extensions: files += glob(os.path.join(self.search_directory, "*.%s" % ext)) log.debug(">>> Scan results at selected directory: %s" % files) for scan_file in files: log.debug(">>> Retrieving scan result %s" % scan_file) if os.access(scan_file, os.R_OK) and os.path.isfile(scan_file): try: parsed = NmapParser() parsed.parse_file(scan_file) except: pass else: self.scan_results.append(parsed)
def open_file(self, widget): file_chooser = ResultsFileSingleChooserDialog(_("Select Scan Result")) response = file_chooser.run() file_chosen = file_chooser.get_filename() file_chooser.destroy() if response == gtk.RESPONSE_OK: try: parser = NmapParser() parser.parse_file(file_chosen) except xml.sax.SAXParseException, e: alert = HIGAlertDialog( message_format='<b>%s</b>' % _('Error parsing file'), secondary_text=_( "The file is not an Nmap XML output file. \ The parsing error that occurred was\n%s") % str(e)) alert.run() alert.destroy() return False except Exception, e: alert = HIGAlertDialog( message_format='<b>%s</b>' % _('Cannot open selected file'), secondary_text= _("This error occurred while trying to open the file:\n%s") % str(e)) alert.run() alert.destroy() return False
def load_from_command(self, command): """Load scan results from a completed NmapCommand.""" parsed = NmapParser() try: parsed.parse_file(command.get_xml_output_filename()) except IOError, e: # It's possible to run Nmap without generating an XML output file, # like with "nmap -V". if e.errno != errno.ENOENT: raise
def _parse(self, file_to_parse): """Parse the given file and return a new NmapParser object. Display an error dialog if there is an error in parsing.""" parsed = NmapParser() log.debug(">>> XML output file that is going to be parsed: %s" % file_to_parse) log.debug(">>> Start parsing...") parsed.parse_file(file_to_parse) log.debug(">>> Successfully parsed!") return parsed
if line.startswith("-"): tags = ["-"] elif line.startswith("+"): tags = ["+"] else: tags = ["="] buff.insert_with_tags_by_name(buff.get_end_iter(), line, *tags) if __name__ == "__main__": from zenmapCore.NmapParser import NmapParser parsed1 = NmapParser() parsed2 = NmapParser() parsed3 = NmapParser() parsed4 = NmapParser() parsed1.parse_file("test/xml_test1.xml") parsed2.parse_file("test/xml_test2.xml") parsed3.parse_file("test/xml_test3.xml") parsed4.parse_file("test/xml_test4.xml") dw = DiffWindow({"Parsed 1": parsed1, "Parsed 2": parsed2, "Parsed 3": parsed3, "Parsed 4": parsed4}) dw.show_all() dw.connect("delete-event", lambda x, y: gtk.main_quit()) gtk.main()
hbox._pack_noexpand_nofill(hig_box_space_holder()) hbox._pack_noexpand_nofill(table) return hbox def make_services_display(self, services): """Return a widget displaying a list of services like 1-1027,1029-1033,1040,1043,1050,1058-1059,1067-1068,1076,1080""" combo = gtk.combo_box_new_text() for i in services.split(","): combo.append_text(i) return combo if __name__ == "__main__": import sys from zenmapCore.NmapParser import NmapParser filename = sys.argv[1] parsed = NmapParser() parsed.parse_file(filename) run_details = ScanRunDetailsPage(parsed) window = gtk.Window() window.add(run_details) window.connect("delete-event", lambda *args: gtk.main_quit()) window.show_all() gtk.main()
elif line.startswith("+"): tags = ["+"] else: tags = ["="] buff.insert_with_tags_by_name(buff.get_end_iter(), line, *tags) if __name__ == "__main__": from zenmapCore.NmapParser import NmapParser parsed1 = NmapParser() parsed2 = NmapParser() parsed3 = NmapParser() parsed4 = NmapParser() parsed1.parse_file("test/xml_test1.xml") parsed2.parse_file("test/xml_test2.xml") parsed3.parse_file("test/xml_test3.xml") parsed4.parse_file("test/xml_test4.xml") dw = DiffWindow({ "Parsed 1": parsed1, "Parsed 2": parsed2, "Parsed 3": parsed3, "Parsed 4": parsed4 }) dw.show_all() dw.connect("delete-event", lambda x, y: gtk.main_quit()) gtk.main()
self.make_services_display(scaninfo['services']), 1, 2, 3, 4) hbox._pack_noexpand_nofill(hig_box_space_holder()) hbox._pack_noexpand_nofill(table) return hbox def make_services_display(self, services): """Return a widget displaying a list of services like 1-1027,1029-1033,1040,1043,1050,1058-1059,1067-1068,1076,1080""" combo = gtk.combo_box_new_text() for i in services.split(","): combo.append_text(i) return combo if __name__ == "__main__": import sys from zenmapCore.NmapParser import NmapParser filename = sys.argv[1] parsed = NmapParser() parsed.parse_file(filename) run_details = ScanRunDetailsPage(parsed) window = gtk.Window() window.add(run_details) window.connect("delete-event", lambda *args: gtk.main_quit()) window.show_all() gtk.main()