Domain WHOIS by Python3
Python script to perform WHOIS lookups on a list of domains, along with explanations and considerations
2024-10-26 19:45:02 - Coderja
import whois def bulk_whois_lookup(domains): results = {} for domain in domains: try: whois_data = whois.whois(domain) results[domain] = whois_data except whois.parser.PywhoisError: results[domain] = "WHOIS data not available" return results # Your domain list domains = ["google.com", "example.org", "nonexistentdomain.net"] # Perform WHOIS lookups whois_results = bulk_whois_lookup(domains) # Print the results in a user-friendly way for domain, data in whois_results.items(): print(f"\nWHOIS information for {domain}:") if isinstance(data, str): print(data) else: for key, value in data.items(): print(f"{key}: {value}")
How it Works:
- Import the whois library: This library provides functions to interact with WHOIS servers. Make sure you have it installed (pip install python-whois).
- bulk_whois_lookup function:Takes a list of domains as input.
- Iterates through each domain.
- Tries to retrieve WHOIS data using whois.whois(domain).
- If successful, stores the data in the results dictionary with the domain as the key.
- If WHOIS data is not found, it stores the string "WHOIS data not available."
- Returns the results dictionary.
- Domain list: Define your list of domains.
- Perform lookups: Call the bulk_whois_lookup function with your domain list.
- Display results: Loop through the results dictionary and print the information for each domain in a formatted manner. If data is not available, it prints the corresponding message.
Key Considerations:
- Rate Limiting: WHOIS servers might have rate limits to prevent abuse. If you're performing a large number of lookups, implement a delay between requests to avoid being blocked.
- Data Parsing: The whois library attempts to parse the raw WHOIS response. However, responses can vary in format, so handle potential parsing errors gracefully.
- Data Accuracy: WHOIS data is self-reported by domain registrants and may not always be accurate or complete.
- Privacy Protection: Some domains have privacy protection enabled, which can mask the true owner's information.
Example Output:
WHOIS information for google.com: ... (WHOIS data for google.com) ... WHOIS information for example.org: ... (WHOIS data for example.org) ... WHOIS information for nonexistentdomain.net: WHOIS data not available
Advanced Options:
- Custom Output: You can customize how you display the results. For example, save them to a CSV file, a database, or use a more structured output format (e.g., JSON).
- Specific Fields: Extract only the specific fields you're interested in (e.g., registrar, expiration date).