API to access nmap from node.js
To install npm install libnmap
scan
Performs scan given available range & optional portdiscover
Retrieves 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.