Scan subnets with maximum efficiency. Concurrently test TCP sockets, probe single-socket UDP targets, and dynamically inject client routing IPs for advanced network discovery.
Solves common network scanning bottlenecks with memory safety and zero socket conflicts.
Utilizes Tokio's asynchronous work-stealing threadpool to scan thousands of hosts simultaneously with ultra-low CPU overhead.
Multiplexes thousands of outbound UDP queries over a single local socket, eliminating local port exhaustion and AddrInUse errors.
Queries system routing tables to automatically patch your machine's client IP into UDP payload frames for specialized device discovery.
Force outbound connection packets to originate from a fixed local port (e.g. -s 20111 or -s 53 for firewall traversal).
Send arbitrary hex-encoded binary payloads (-d "AA BB CC DD") to trigger custom service responses across unknown ports.
Pressing Ctrl+C cleanly stops ongoing worker tasks, aggregates all discovered hosts up to that second, sorts them, and writes to disk.
Configure options below to generate a tailored ipscan command ready for execution.
Install via Crates.io, pre-built binary, or compile directly from Rust source.
Pre-compiled binaries are built automatically via GitHub Actions CI/CD for Windows, Linux, and macOS on every release.
| Flag | Long Option | Description | Default |
|---|---|---|---|
-i |
--ip |
Target IP, CIDR block, IP range, or domain hostname | Prompted if omitted |
-P |
--protocol |
Scan protocol (TCP or UDP) |
Prompted if omitted |
-p |
--port |
Target port number (1 - 65535) | Prompted if omitted |
-s |
--source-port |
Local outbound source port binding (0 for random OS port) | 0 |
-t |
--timeout |
Connection / response timeout in milliseconds | 1000 |
-c |
--concurrency |
Maximum simultaneous Tokio connection tasks | 200 |
-o |
--output |
File path to write discovered active host IPs | results.txt |
-d |
--data |
Custom hex-encoded string payload for UDP packets | "" |
| None | --nec |
Enable dynamic local IP injection into NEC UDP payload | false |