Python tool for discovering available domain names by analyzing the NLTK words corpus and checking domain availability across common TLDs. Features intelligent word splitting, robust error handling, and automatic progress saving.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2025-01-07 15:15:20 +01:00
domain-checker.py Create domain-checker.py 2024-11-03 20:09:06 +01:00
LICENCE Create LICENCE 2024-11-03 20:24:30 +01:00
README.md Update README.md 2025-01-07 15:15:20 +01:00
requirements.txt Create requirements.txt 2024-11-03 20:09:52 +01:00

Domain Availability Checker

A Python tool that analyzes the NLTK words corpus to find available domain names by intelligently splitting words and checking their availability with common TLDs (Top Level Domains).

Python Version

WTFPL Licence

🚀 Features

  • Intelligently splits words to find potential domain names
  • Checks domain availability across multiple TLDs
  • Implements robust error handling and retry mechanisms
  • Saves progress automatically and can resume interrupted checks
  • Comprehensive logging system
  • Rate limiting to respect WHOIS servers
  • Progress tracking with detailed statistics

📋 Requirements

  • Python 3.8 or higher
  • Required packages listed in requirements.txt

🔧 Installation

  1. Clone the repository:
git clone https://github.com/sooox-cc/domainchecker.git
cd domain-checker
  1. Create and activate a virtual environment (recommended):
python -m venv venv
source venv/bin/activate  # On Windows use: venv\Scripts\activate
  1. Install required packages:
pip install -r requirements.txt
  1. Download NLTK data (the script will do this automatically on first run):
import nltk
nltk.download('words')

💻 Usage

Basic usage:

from domain_checker import DomainChecker

# Initialize checker with default settings
checker = DomainChecker()
results = checker.run()

# Or specify a word limit for testing
checker = DomainChecker(word_limit=1000)
results = checker.run()

The script will create a results directory containing:

  • JSON files with available domains
  • JSON files with unavailable domains
  • JSON files with domains that encountered errors
  • A detailed log file

📊 Output Structure

Results are saved in the following format:

{
    "available": ["domain1.com", "domain2.net", ...],
    "unavailable": ["taken1.com", "taken2.org", ...],
    "errors": ["error1.com", "error2.io", ...]
}

⚠️ Rate Limiting

The script implements a 1-second delay between WHOIS requests to avoid rate limiting. You can adjust this in the code if needed, but be cautious about making too many rapid requests.

📝 Logging

Logs are saved to domain_checker.log and include:

  • Start/end of checking process
  • Individual domain check results
  • Errors and exceptions
  • Progress updates

This project is licensed under the MIT License - see the LICENSE file for details.