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:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user