diff --git a/netbox-scanner/config.py b/netbox-scanner/config.py index 3824cad..060fe8e 100644 --- a/netbox-scanner/config.py +++ b/netbox-scanner/config.py @@ -3,6 +3,7 @@ TAG = 'auto' UNKNOWN = 'UNKNOWN HOST' LOG = '.' # path to logfile +NMAP_ARGS = '-T4 -O -F --host-timeout 30s' NETBOX = { 'ADDRESS': 'https://', diff --git a/netbox-scanner/nbscan.py b/netbox-scanner/nbscan.py index a8bbcf6..7b9d394 100644 --- a/netbox-scanner/nbscan.py +++ b/netbox-scanner/nbscan.py @@ -17,8 +17,9 @@ logging.getLogger('paramiko').setLevel(logging.CRITICAL) # paramiko is noisy class NetBoxScanner(object): - def __init__(self, address, token, tls_verify, devs_auth, tag, unknown): + def __init__(self, address, token, tls_verify, nmap_args, devs_auth, tag, unknown): self.netbox = api(address, token=token, ssl_verify=tls_verify) + self.nmap_args = nmap_args self.devs = devs_auth self.tag = tag self.unknown = unknown @@ -56,7 +57,7 @@ class NetBoxScanner(object): ''' hosts = [] nm = PortScanner() - nm.scan(network, arguments='-T4 -O -F') + nm.scan(network, arguments=self.nmap_args) for host in nm.all_hosts(): address = nm[host]['addresses']['ipv4'] diff --git a/netbox-scanner/netbox-scanner.py b/netbox-scanner/netbox-scanner.py index eb9d7ac..2316fdf 100644 --- a/netbox-scanner/netbox-scanner.py +++ b/netbox-scanner/netbox-scanner.py @@ -18,6 +18,8 @@ argp.add_argument('-t', '--token', help='netbox access token', default=config.NETBOX['TOKEN']) argp.add_argument('-v', '--verify', help='tls verify', action='store_true', default=config.NETBOX['TLS_VERIFY']) +argp.add_argument('-m', '--nmap', help='set Nmap arguments', + default=config.NMAP_ARGS) argp.add_argument('-d', '--devices', help='device authentication crendentials', default=config.DEVICE_AUTH) argp.add_argument('-g', '--tag', help='netbox-scanner tag', @@ -35,8 +37,8 @@ logging.basicConfig(filename='{}/netbox-scanner-{}.log'.format(args.log, disable_warnings(InsecureRequestWarning) -nbs = NetBoxScanner(args.address, args.token, args.verify, args.devices, - args.tag, args.unknown) +nbs = NetBoxScanner(args.address, args.token, args.verify, args.nmap, + args.devices, args.tag, args.unknown) logging.info('started: {} networks'.format(len(args.networks))) stats = nbs.sync(args.networks) logging.info('finished: +{} ~{} -{} ?{} !{}'.format(stats[0], stats[1], diff --git a/setup.py b/setup.py index 2031c32..d653607 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ with open('README.md', 'r') as fh: setuptools.setup( name='netbox-scanner', - version='0.5.0', + version='0.5.1', author='José Lopes de Oliveira Jr.', author_email='jlojunior@gmail.com', description='A scanner util for NetBox',