Changeset 3890
- Timestamp:
- 01/06/09 13:43:36 (4 years ago)
- Files:
-
- 1 modified
-
branch/nmapparser/NmapParser.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branch/nmapparser/NmapParser.py
r3889 r3890 36 36 def __init__(self, id): 37 37 self.id = id 38 self.nmap_host = { 39 'status': {'state': '', 'reason': ''}, 40 'smurf': {'responses': ''}, 41 'times': {'to': '', 'srtt': '', 'rttvar': ''}, 42 'hostscript': [], 43 'distance': {'value': ''}, 44 'trace': {}, 45 'address': [], 46 'hostnames': [], 47 'ports': {}, 48 'uptime': {'seconds': '', 'lastboot': ''}, 49 'tcpsequence': {'index': '', 'values': '', 'class': ''}, 50 'tcptssequence': {'values': '', 'class': ''}, 51 'ipidsequence': {'values': '', 'class': ''}, 52 'os': {} 53 } 38 54 39 55 # Host ID 40 56 def get_id(self): 41 if self._id != 0:57 try: 42 58 return self._id 43 raise Exception("Id was not set yet.") 59 except AttributeError: 60 raise Exception("Id was not set yet.") 44 61 45 62 def set_id(self, id): … … 364 381 365 382 366 _id = 0367 383 _tcpsequence = {} 368 384 _osclasses = [] … … 390 406 self.nmap = { 391 407 'nmaprun': {}, 392 'runstats': {}, 393 'verbose': {}, 394 'debugging': {}, 408 'runstats': { 409 'finished': {}, 410 'hosts': {'up': '', 'down': '', 'total': ''} 411 }, 412 'verbose': {'level': ''}, 413 'debugging': {'level': ''}, 395 414 'scaninfo': [], 396 415 'taskbegin': [], … … 477 496 478 497 def get_debugging_level (self): 479 return self.nmap .get('debugging', '')498 return self.nmap['debugging'].get('level', '') 480 499 481 500 def set_debugging_level(self, level): 482 self.nmap['debugging'] = level 501 self.nmap['debugging']['level'] = level 502 503 def set_debugging(self, debug): 504 self.nmap['debugging'] = debug 483 505 484 506 def get_verbose_level (self): 485 return self.nmap .get('verbose', '')507 return self.nmap['verbose'].get('level', '') 486 508 487 509 def set_verbose_level(self, level): 488 self.nmap['verbose'] = level 510 self.nmap['verbose']['level'] = level 511 512 def set_verbose(self, verbose): 513 self.nmap['verbose'] = verbose 489 514 490 515 def get_scaninfo(self): 491 return self.nmap.get('scaninfo', '')516 return self.nmap.get('scaninfo', []) 492 517 493 518 def set_scaninfo(self, info): 494 519 self.nmap['scaninfo'] = info 520 521 def append_scaninfo(self, info): 522 self.nmap['scaninfo'].append(info) 495 523 496 524 def get_services_scanned (self): … … 837 865 self.nmap["scan_name"] = attrs.get("scan_name", "") 838 866 839 def _parse_scaninfo(self, attrs):840 dic = {}841 842 dic["type"] = attrs.get("type", "")843 dic["protocol"] = attrs.get("protocol", "")844 dic["numservices"] = attrs.get("numservices", "")845 dic["services"] = attrs.get("services", "")846 847 self.nmap["scaninfo"].append(dic)848 849 def _parse_verbose(self, attrs):850 self.nmap["verbose"] = attrs.get("level", "")851 852 def _parse_debugging(self, attrs):853 self.nmap["debugging"] = attrs.get("level", "")854 867 855 868 def _parse_runstats_finished(self, attrs): … … 971 984 if name == "nmaprun": 972 985 self._parse_nmaprun(attrs) 986 elif name in ("verbose", "debugging", "taskbegin", "taskprogress", 987 "taskend"): 988 getattr(self, "set_%s" % name)(attrs.copy()) 973 989 elif name == "scaninfo": 974 self._parse_scaninfo(attrs) 975 elif name == "verbose": 976 self._parse_verbose(attrs) 977 elif name == "debugging": 978 self._parse_debugging(attrs) 990 self.append_scaninfo(attrs.copy()) 991 992 # Parse runstats 979 993 elif name == "runstats": 980 994 self.in_run_stats = True … … 983 997 elif self.in_run_stats and name == "hosts": 984 998 self._parse_runstats_hosts(attrs) 999 1000 # Parse hosts 985 1001 elif name == "host": 986 1002 self.in_host = True
