High-performance asynchronous DNS discovery tool written in Rust. DNSScanner detects live DNS servers by sending concurrent UDP DNS queries and recording responding servers.
This tool is designed for large-scale DNS infrastructure discovery, network research, and security laboratory environments.
- Asynchronous UDP DNS probing
- High-speed concurrent scanning (Tokio runtime)
- Single IP scanning
- CIDR range scanning
- File-based target scanning
- Real-time live DNS detection output
- Automatic result saving to file
- Final live DNS counter summary
- Lightweight and fast Rust implementation
DNSScanner/
├── Cargo.toml
├── dnsForTest.txt
├── live_dns.txt
└── src/
├── main.rs
├── scanner.rs
└── ip_utils.rs
- Rust 1.70+
- Cargo
Install Rust:
curl https://sh.rustup.rs -sSf | shFor maximum performance use release mode:
cargo build --releaseBinary location:
target/release/DNSScanner
DNSScanner -t 8.8.8.8DNSScanner -t 8.8.8.0/24Example file:
ips.txt
1.1.1.1
8.8.8.8
9.9.9.9
Run:
DNSScanner -t ips.txt[DNS] 8.8.8.8
[DNS] 1.1.1.1
[DNS] 9.9.9.9
Total live DNS found: 3
Detected DNS servers are saved to:
live_dns.txt
- Expands input targets (single IP, CIDR, or file list)
- Sends asynchronous UDP DNS queries to port 53
- Waits for responses concurrently
- Identifies responding DNS servers
- Logs active DNS servers to output file
- Displays total number of live DNS servers
This asynchronous approach enables extremely fast scanning compared to sequential methods.
-
Always run in release mode:
DNSScanner -t <target>
-
Use VPS or high-bandwidth environments for large scans
-
Avoid scanning extremely large ranges without authorization
This project is intended for:
- DNS infrastructure discovery
- Network measurement research
- Async Rust networking practice
- Security laboratory testing
Ensure you have authorization before scanning networks you do not own.
GPL-3.0