A fast, concurrent port scanner written in Rust that intelligently detects common services and protocols with a focus on blockchain and web services.
-
🚀 High Performance:
- Async/await based concurrent scanning
- Configurable concurrency limits
- Non-blocking I/O operations
-
🔍 Smart Service Detection:
- Ethereum JSON-RPC nodes (ports 8545-8549)
- HTTP/HTTPS web servers with server fingerprinting
- REST/GraphQL API endpoints
- Debug/Remote ports
- Generic TCP services
-
🌐 Network Support:
- IPv4 and IPv6 addresses
- Hostname resolution via Google DNS (1.1.1.1)
- Fallback DNS mechanisms
- Custom port range scanning
-
📊 User Experience:
- Real-time progress bar with ETA
- Colored terminal output
- Detailed service information including:
- Protocol detection
- Service identification
- Version information (when available)
- Response headers analysis
-
⚙️ Configuration Options:
- Port range selection (
--start-port
,--end-port
) - Connection timeout (
--timeout
) - Concurrent scan limit (
--concurrent-limit
) - Custom service detection rules
- Port range selection (
- Rust 1.56 or higher
- Cargo package manager
cargo install port-scanner
git clone https://github.com/morteza-shojaei/port-scanner.git
cd port-scanner
cargo build --release
Basic usage:
port-scanner-rs--target <host>
Advanced options:
port-scanner-rs--target <host> --start-port 1 --end-port 1024 --timeout 1000 --concurrent-limit 100
Scan a specific IP:
port-scanner-rs--target 192.168.1.1
Scan a domain:
port-scanner-rs--target ethereum.org
Scan specific port range:
port-scanner-rs--target 192.168.1.1 --start-port 8545 --end-port 8549
- Always ensure you have permission to scan the target system
- Be aware that aggressive scanning may trigger IDS/IPS systems
- Consider rate limiting when scanning production systems
- Some networks may block or flag port scanning activities
MIT License