1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-10 09:49:05 +00:00

Make osclasses a substructure of osmatch.

This commit is contained in:
david
2012-05-05 18:02:41 +00:00
parent 56b7063aa9
commit cac71422e8
7 changed files with 68 additions and 76 deletions

View File

@@ -1851,29 +1851,19 @@ class NetNode(Node):
if host.uptime.get("seconds") or host.uptime.get("lastboot"):
return host.uptime
elif info == "device_type":
if len(host.osclasses) == 0:
osmatch = host.get_best_osmatch()
if osmatch is None:
return None
osclasses = osmatch['osclasses']
if len(osclasses) == 0:
return None
types = ["router", "wap", "switch", "firewall"]
for type in types:
if type in host.osclasses[0].get("type", "").lower():
if type in osclasses[0].get("type", "").lower():
return type
elif info == "os":
os = {}
os_classes = []
for osclass in host.osclasses:
os_class = {}
os_class["type"] = osclass.get("type", "")
os_class["vendor"] = osclass.get("vendor", "")
#os_class["accuracy"] = int(osclass.get("accuracy", ""))
os_class["accuracy"] = osclass.get("accuracy", "")
os_class["os_family"] = osclass.get("osfamily", "")
os_class["os_gen"] = osclass.get("osgen", "")
os_classes.append(os_class)
os["classes"] = os_classes
# osmatches
if len(host.osmatches) > 0 and \
host.osmatches[0]["accuracy"] != "" and \
@@ -1883,6 +1873,20 @@ class NetNode(Node):
os["matches"] = host.osmatches
os["matches"][0]["db_line"] = 0 # not supported
os_classes = []
for osclass in host.osmatches[0]["osclasses"]:
os_class = {}
os_class["type"] = osclass.get("type", "")
os_class["vendor"] = osclass.get("vendor", "")
#os_class["accuracy"] = int(osclass.get("accuracy", ""))
os_class["accuracy"] = osclass.get("accuracy", "")
os_class["os_family"] = osclass.get("osfamily", "")
os_class["os_gen"] = osclass.get("osgen", "")
os_classes.append(os_class)
os["classes"] = os_classes
# ports_used
if len(host.ports_used) > 0:
if os == None: