English | 中文
A powerful domain name availability checker written in Go. This tool helps you find available domain names by checking multiple registration indicators and providing detailed verification results.
Web Version: zli.li
- Multi-method Verification: Checks domain availability using multiple methods:
- DNS records (NS, A, MX)
- WHOIS information
- SSL certificate verification
- Advanced Filtering: Filter domains using regular expressions
- Concurrent Processing: Multi-threaded domain checking with configurable worker count
- Smart Error Handling: Automatic retry mechanism for failed queries
- Detailed Results: Shows verification signatures for registered domains
- Progress Tracking: Real-time progress display with current/total count
- File Output: Saves results to separate files for available and registered domains
- Configurable Delay: Adjustable delay between queries to prevent rate limiting
git clone https://github.com/xuemian168/domain-scanner.git
cd domain-scanner
go mod download
go run main.go [options]
-l int
: Domain length (default: 3)-s string
: Domain suffix (default: .li)-p string
: Domain pattern:d
: Pure numbers (e.g., 123.li)D
: Pure letters (e.g., abc.li)a
: Alphanumeric (e.g., a1b.li)
-r string
: Regex filter for domain names-regex-mode string
: Regex matching mode (default: full)full
: Match entire domain nameprefix
: Match only domain name prefix
-delay int
: Delay between queries in milliseconds (default: 1000)-workers int
: Number of concurrent workers (default: 10)-show-registered
: Show registered domains in output (default: false)-h
: Show help information
- Check 3-letter .li domains with 20 workers:
go run main.go -l 3 -s .li -p D -workers 20
- Check domains with custom delay and workers:
go run main.go -l 3 -s .li -p D -delay 500 -workers 15
- Show both available and registered domains:
go run main.go -l 3 -s .li -p D -show-registered
- Use regex filter with full domain matching:
go run main.go -l 3 -s .li -p D -r "^[a-z]{2}[0-9]$" -regex-mode full
- Use regex filter with prefix matching:
go run main.go -l 3 -s .li -p D -r "^[a-z]{2}" -regex-mode prefix
[1/100] Domain abc.com is AVAILABLE!
[2/100] Domain xyz.com is REGISTERED [DNS_NS, WHOIS]
[3/100] Domain 123.com is REGISTERED [DNS_A, SSL]
DNS_NS
: Domain has name server recordsDNS_A
: Domain has IP address recordsDNS_MX
: Domain has mail server recordsWHOIS
: Domain is registered according to WHOISSSL
: Domain has a valid SSL certificate
- Available domains:
available_domains_[pattern]_[length]_[suffix].txt
- Registered domains:
registered_domains_[pattern]_[length]_[suffix].txt
The tool includes robust error handling:
- Automatic retry mechanism for WHOIS queries (3 attempts)
- Timeout settings for SSL certificate checks
- Graceful handling of network issues
- Detailed error reporting
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.
- Performance Optimizations: Significantly improved domain checking speed
- Optimized reserved domain detection with O(1) map lookups
- Pre-compiled regex patterns for better performance
- Enhanced WHOIS response parsing efficiency
- Bug Fixes: Fixed WHOIS parsing for .de domains and other TLDs
- Code Quality: Refactored internal architecture for better maintainability
- Added flexible regex matching mode with
-regex-mode
option - Improved domain filtering capabilities
- Enhanced error handling for regex patterns