âš ī¸ Legal Disclaimer: This software is provided under the MIT License "as is". The author and contributors accept no liability for unauthorized scanning or network damage. Ensure you have explicit permission before probing target networks.
Built in Rust with Tokio Engine
🤖 Developed with AI (Google Antigravity)

High-Performance Asynchronous
IP & Port Scanner

Scan subnets with maximum efficiency. Concurrently test TCP sockets, probe single-socket UDP targets, and dynamically inject client routing IPs for advanced network discovery.

ipscan — interactive simulation terminal
$ ipscan -i 192.168.1.0/24 -P UDP -p 3530 -s 20111 --nec -t 1000 [INFO] Initializing Tokio multi-thread worker pool (concurrency limit: 200) [INFO] Target count: 254 IP addresses | Target Port: 3530 (UDP) [NEC] Resolved local routing interface IP: 192.168.1.105 [NEC] Injecting local IP payload: 010100080126008f0a1703f1...c0a80169 [SCAN] Progress: [========================================] 254/254 (100%) [FOUND] 192.168.1.1:3530 OPEN (Response time: 4ms) [FOUND] 192.168.1.42:3530 OPEN (Response time: 12ms) [FOUND] 192.168.1.108:3530 OPEN (Response time: 8ms) [SUCCESS] Scan complete! 3 active host(s) written to results.txt
âš ī¸ Legal Disclaimer: This software is provided under the MIT License *"as is"*, without warranty of any kind. The authors and contributors accept no liability or responsibility for any unauthorized scanning, network disruption, or illegal activities resulting from the use of this tool. Always obtain explicit permission before scanning network targets.

Engineered for Raw Speed & Reliability

Solves common network scanning bottlenecks with memory safety and zero socket conflicts.

⚡

Tokio Concurrency

Utilizes Tokio's asynchronous work-stealing threadpool to scan thousands of hosts simultaneously with ultra-low CPU overhead.

📡

Single-Socket UDP Probing

Multiplexes thousands of outbound UDP queries over a single local socket, eliminating local port exhaustion and AddrInUse errors.

đŸˇī¸

Dynamic NEC IP Injection

Queries system routing tables to automatically patch your machine's client IP into UDP payload frames for specialized device discovery.

🔧

Custom Source Port Binding

Force outbound connection packets to originate from a fixed local port (e.g. -s 20111 or -s 53 for firewall traversal).

đŸ“Ĩ

Hex Payload Support

Send arbitrary hex-encoded binary payloads (-d "AA BB CC DD") to trigger custom service responses across unknown ports.

âšī¸

Graceful Interrupt Handling

Pressing Ctrl+C cleanly stops ongoing worker tasks, aggregates all discovered hosts up to that second, sorts them, and writes to disk.

Command Line Builder

Configure options below to generate a tailored ipscan command ready for execution.

ipscan -i 192.168.1.0/24 -P UDP -p 3530 -s 20111 --nec -t 1000 -c 200 -o results.txt

Quick Installation & Usage

Install via Crates.io, pre-built binary, or compile directly from Rust source.

# Install ipscan globally using Cargo cargo install ipscan # Launch interactive prompt or pass arguments ipscan --help
# 1. Clone the repository git clone https://github.com/mahirgul/ipscan-rust.git cd ipscan-rust # 2. Build optimized release binary cargo build --release # Binary will be placed in ./target/release/ipscan ./target/release/ipscan -i 192.168.1.1-100 -P TCP -p 80

Pre-compiled binaries are built automatically via GitHub Actions CI/CD for Windows, Linux, and macOS on every release.

đŸĒŸ Windows (x64) 🐧 Linux (x64) 🍎 macOS (Apple Silicon / Intel)

Command-Line Options Cheat Sheet

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
âš ī¸ Legal Disclaimer This software is provided under the MIT License *"as is"*, without warranty of any kind. The authors and contributors accept no liability or responsibility for any unauthorized network scanning, damages, or illegal activities resulting from the use of this tool. Always ensure you have explicit permission before scanning network targets.