mirror of
				https://github.com/lopes/netbox-scanner.git
				synced 2025-11-04 05:23:48 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			33 lines
		
	
	
		
			995 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			995 B
		
	
	
	
		
			Python
		
	
	
	
	
	
import nmap3
 | 
						|
 | 
						|
class Nmap(object):
 | 
						|
 | 
						|
    def __init__(self, unknown, networks):
 | 
						|
        self.unknown = unknown
 | 
						|
        self.networks = networks
 | 
						|
        self.hosts = list()
 | 
						|
        self.scan_results = {}
 | 
						|
 | 
						|
    def scan(self):
 | 
						|
        nmap = nmap3.NmapHostDiscovery()  # instantiate nmap object
 | 
						|
        for item in self.networks:
 | 
						|
            temp_scan_result = nmap.nmap_no_portscan(item.replace('\n', ''), args="-R --system-dns")
 | 
						|
            self.scan_results = {**self.scan_results, **temp_scan_result}
 | 
						|
            self.scan_results.pop("stats")
 | 
						|
            self.scan_results.pop("runtime")
 | 
						|
        return self.scan_results
 | 
						|
 | 
						|
    def run(self):
 | 
						|
        self.scan()
 | 
						|
        for k,v in self.scan().items():
 | 
						|
            try:
 | 
						|
                self.hosts.append((
 | 
						|
                    k,
 | 
						|
                    v['hostname'][0]['name']
 | 
						|
                ))
 | 
						|
            except (IndexError, KeyError):
 | 
						|
                self.hosts.append((
 | 
						|
                    k,
 | 
						|
                    self.unknown
 | 
						|
                ))
 |