initdev-nmap
v1.0.0
Published
A robust, chainable Nmap wrapper using the Builder pattern + Fluent Interface.
Maintainers
Readme
initdev-nmap
A robust, chainable Nmap wrapper for Node.js using the Builder pattern and Fluent Interface.
Installation
npm install initdev-nmapPrerequisites:
- Nmap must be installed and available in your system PATH.
Usage
import { scan } from "initdev-nmap";
// Simple scan
const result = await scan("192.168.1.1").run();
console.log(result);
// Advanced chainable scan
const advancedResult = await scan("192.168.1.0/24")
.scanType("syn")
.os()
.serviceInfo()
.ports([22, 80, 443])
.timing(4)
.script("vuln")
.verbose()
.run();
console.log(advancedResult);API
scan(target)
Initializes a new scan builder for the specified target.
Chainable Methods
All methods return the builder instance for chaining, except run().
target(value): Sets the target IP or hostname.ports(ports): Sets ports to scan. Accepts string ("80"), array ([22, 80]), or range ("1-100").scanType(type): Sets the scan type. Supported:syn,udp,connect,ack,window,maimon.os(): Enables OS detection (-O).serviceInfo()/version(): Enables service version detection (-sV).aggressive(): Enables aggressive scan options (-A).timing(level): Sets timing template (0-5).script(name): Runs a script or script category.scriptArgs(obj): Sets script arguments from an object (--script-args key=value).topPorts(n): Scans the topnports.exclude(hosts): Excludes hosts from the scan.maxRetries(n): Sets the maximum number of port scan probe retransmissions.maxRate(n): Sets the maximum packet send rate.minRate(n): Sets the minimum packet send rate.dnsServers(list): Sets custom DNS servers.ipv6(): Enables IPv6 scanning (-6).disablePing(): Disables host discovery (-Pn).verbose(level): Sets verbosity level (default 1).quiet(): Suppresses verbose output.output(type): Sets output format. Supported:xml(default),normal,grepable.option(opt): Adds a custom raw Nmap option.sudo(): Runs the Nmap command withsudo.
run()
Executes the Nmap command. Returns a Promise that resolves to:
- A JSON object (parsed from XML) if output is
xml(default). - A string if output is
normalorgrepable.
