https://github.com/jas-/node-libnmap
API to access nmap from node.js
https://github.com/jas-/node-libnmap
Last synced: about 2 months ago
JSON representation
API to access nmap from node.js
- Host: GitHub
- URL: https://github.com/jas-/node-libnmap
- Owner: jas-
- License: mit
- Created: 2014-01-05T00:39:41.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2022-03-08T21:54:03.000Z (about 3 years ago)
- Last Synced: 2025-03-29T06:08:01.308Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 2.69 MB
- Stars: 258
- Watchers: 14
- Forks: 42
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# libnmap
API to access nmap from node.js
[](https://npmjs.com/package/libnmap) [](https://travis-ci.org/jas-/node-libnmap) [](https://david-dm.org/jas-/node-libnmap)  [](https://snyk.io/test/github/jas-/node-libnmap?targetFile=package.json)
## install ##
To install `npm install libnmap`
## methods ##
* `scan` Performs scan given available range & optional port
* `discover` Retrieves list of online network neighbors## options ##
* `nmap` {String} Path to NMAP binary
* `verbose` {Boolean} Turn on verbosity during scan(s)
* `ports` {String} Range of ports to scan
* `range` {Array} An array of hostnames/ipv4/ipv6, CIDR or ranges
* `timeout` {Number} Number of seconds to wait for host/port response
* `blocksize` {Number} Number of hosts per network scanning block
* `threshold` {Number} Max number of spawned process
* `flags` {Array} Array of flags for .spawn()
* `udp` {Boolean} UDP scan mode enabled
* `json` {Boolean} JSON object as output, false produces XML## tests ##
To test `npm test`
## examples ##
A default usage example. For more advanced and possible options please
see [here](https://github.com/jas-/node-libnmap/tree/master/examples) or simply
look in the included `examples/` folder.### scan ###
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).```javascript
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]));
}
});
```### discover ###
The discover method requires nodejs < `v0.11.2` and can be used to aquire
information about neighbors per network interface.```javascript
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]));
}
});
```### sample reports ###
To see some output examples please take a look at the [json (default) & xml reports](https://gist.github.com/jas-/23e2a32110562388bef5).
## contributing ##
Contributions are welcome & appreciated. Refer to the [contributing document](https://github.com/jas-/node-libnmap/blob/master/CONTRIBUTING.md)
to help facilitate pull requests.## license ##
This software is licensed under the [MIT License](https://github.com/jas-/node-libnmap/blob/master/LICENSE).
Copyright Jason Gerfen, 2013-2019.