API to access nmap from node.js
To install npm install libnmap
scanPerforms scan given available range & optional portdiscoverRetrieves list of online network neighbors
nmap{String} Path to NMAP binaryverbose{Boolean} Turn on verbosity during scan(s)ports{String} Range of ports to scanrange{Array} An array of hostnames/ipv4/ipv6, CIDR or rangestimeout{Number} Number of seconds to wait for host/port responseblocksize{Number} Number of hosts per network scanning blockthreshold{Number} Max number of spawned processflags{Array} Array of flags for .spawn()udp{Boolean} UDP scan mode enabledjson{Boolean} JSON object as output, false produces XML
To test npm test
A default usage example. For more advanced and possible options please
see here or simply
look in the included examples/ folder.
The example show shows the types of host ranges supported. In this example the default IANA range of reserved ports is scanned per host in each range (1024).
const nmap = require('libnmap');
const opts = {
range: [
'scanme.nmap.org',
'10.0.2.0/25',
'192.168.10.80-120',
'fe80::42:acff:fe11:fd4e/64'
]
};
nmap.scan(opts, function(err, report) {
if (err) throw new Error(err);
for (let item in report) {
console.log(JSON.stringify(report[item]));
}
});The discover method requires nodejs < v0.11.2 and can be used to aquire
information about neighbors per network interface.
const nmap = require('libnmap');
nmap.discover(function(err, report) {
if (err) throw new Error(err);
for (let item in report) {
console.log(JSON.stringify(report[item]));
}
});To see some output examples please take a look at the json (default) & xml reports.
Contributions are welcome & appreciated. Refer to the contributing document to help facilitate pull requests.
This software is licensed under the MIT License.
Copyright Jason Gerfen, 2013-2019.
