Domain Name Tips
This revision is from 2024/03/02 11:20. You can Restore it.
- Keep it short
- Preference for .com
- Forget hyphens and numbers
- One syllable
- A word you can say
A domain name does not buy you anything. Building a brand around any name is as good as any name, and still difficult. My reasoning is just buy 1 domain name and do everything there.
expireddomains.net is a great place to re-register 0 day deleted domains. People have decided not to renew the domain, and now it is back on the market.
My advice to IANA is to phase out all the domain name extensions except for .com .net and .org and limit a valid domain name to 12 characters max, at most along with no numbers or hyphens.
Here are some useless python scripts...
# whois every combination from a.com to zzzz.com looking for unregistered domain import whois import sqlite3 def get_domain_expiration_date(domain_name): try: # Perform WHOIS lookup domain_info = whois.whois(domain_name) # Extract expiration date if domain_info.expiration_date: if isinstance(domain_info.expiration_date, list): # Handle multiple expiration dates expiration_date = domain_info.expiration_date[0] else: expiration_date = domain_info.expiration_date return expiration_date else: return None except Exception as e: print(f"Error: {str(e)}") return None def insert_into_database(domain_name, expiration_date): try: # Connect to SQLite database conn = sqlite3.connect('domains.db') cursor = conn.cursor() # Create table if not exists cursor.execute('''CREATE TABLE IF NOT EXISTS domains ( domain_name TEXT PRIMARY KEY, expiry_date TEXT )''') # Insert domain name and expiration date cursor.execute('''INSERT OR REPLACE INTO domains (domain_name, expiry_date) VALUES (?, ?)''', (domain_name, expiration_date)) # Commit changes conn.commit() conn.close() except Exception as e: print(f"Error inserting into database: {str(e)}") def main(): # Loop through all combinations of domain names from aa.com to zzzz.com for i in range(26): for j in range(26): for k in range(26): # for l in range(26): domain_name = chr(ord('a') + i) + chr(ord('a') + j) + chr(ord('a') + k) + ".com" expiration_date = get_domain_expiration_date(domain_name) print(f"Domain {domain_name} expiration date: {expiration_date}") if expiration_date: insert_into_database(domain_name, expiration_date) print("Domain information inserted into database.") else: print("Unable to retrieve expiration date. Not inserted into database.") insert_into_database(domain_name, datetime.now().strftime("%Y-%m-%d %H:%M:%S")) domain_name = chr(ord('a') + i) + chr(ord('a') + j) + chr(ord('a') + k) + ".org" expiration_date = get_domain_expiration_date(domain_name) print(f"Domain {domain_name} expiration date: {expiration_date}") if expiration_date: insert_into_database(domain_name, expiration_date) print("Domain information inserted into database.") else: print("Unable to retrieve expiration date for .org domain. Adding to database with today's date.") insert_into_database(domain_name, datetime.now().strftime("%Y-%m-%d %H:%M:%S")) if __name__ == "__main__": main()
# Utilize a dictionary to find domain names less than 7 characters long # Yield results that have a definition in the English language import whois import sqlite3 from datetime import datetime def get_domain_expiration_date(domain_name): try: # Perform WHOIS lookup domain_info = whois.whois(domain_name) # Extract expiration date if domain_info.expiration_date: if isinstance(domain_info.expiration_date, list): # Handle multiple expiration dates expiration_date = domain_info.expiration_date[0] else: expiration_date = domain_info.expiration_date return expiration_date else: return None except Exception as e: print(f"Error: {str(e)}") return None def insert_into_database(domain_name, expiration_date): try: # Connect to SQLite database conn = sqlite3.connect('domains.db') cursor = conn.cursor() # Create table if not exists cursor.execute('''CREATE TABLE IF NOT EXISTS domains ( domain_name TEXT PRIMARY KEY, expiry_date TEXT )''') # Insert domain name and expiration date cursor.execute('''INSERT OR REPLACE INTO domains (domain_name, expiry_date) VALUES (?, ?)''', (domain_name, expiration_date)) # Commit changes conn.commit() conn.close() except Exception as e: print(f"Error inserting into database: {str(e)}") def main(): try: # Connect to SQLite dictionary database conn_dict = sqlite3.connect('small_word_set_en_dictionary.db') cursor_dict = conn_dict.cursor() # Select all words from the dictionary cursor_dict.execute("SELECT word FROM entries WHERE length(word) < 7 ") # LENGTH # cursor_dict.execute("SELECT word FROM entries") words = cursor_dict.fetchall() for word_tuple in words: word = word_tuple[0] # Omit word if it starts or ends with a hyphen if word.startswith('-') or word.endswith('-'): print(f"Skipping word '{word}' because it starts or ends with a hyphen.") continue domain_com = word + ".com" domain_org = word + ".org" expiration_date_com = get_domain_expiration_date(domain_com) expiration_date_org = get_domain_expiration_date(domain_org) print(f"Domain {domain_com} expiration date: {expiration_date_com}") if expiration_date_com: insert_into_database(domain_com, expiration_date_com.strftime("%Y-%m-%d %H:%M:%S")) print("Domain information inserted into database.") else: print("Unable to retrieve expiration date for .com domain. Adding to database with today's date.") insert_into_database(domain_com, datetime.now().strftime("%Y-%m-%d %H:%M:%S")) print(f"Domain {domain_org} expiration date: {expiration_date_org}") if expiration_date_org: insert_into_database(domain_org, expiration_date_org.strftime("%Y-%m-%d %H:%M:%S")) print("Domain information inserted into database.") else: print("Unable to retrieve expiration date for .org domain. Adding to database with today's date.") insert_into_database(domain_org, datetime.now().strftime("%Y-%m-%d %H:%M:%S")) conn_dict.close() except Exception as e: print(f"Error: {str(e)}") if __name__ == "__main__": main()
# Search the local database and send notification to linux desktop each day as cron job # Check the date not only today but any date in the past import whois import sqlite3 from datetime import datetime, timedelta import subprocess def send_desktop_notification(title, message): subprocess.Popen(['notify-send', title, message]) def get_domain_expiration_date(domain_name): try: # Perform WHOIS lookup domain_info = whois.whois(domain_name) # Extract expiration date if domain_info.expiration_date: if isinstance(domain_info.expiration_date, list): # Handle multiple expiration dates expiration_date = domain_info.expiration_date[0] else: expiration_date = domain_info.expiration_date return expiration_date else: return None except Exception as e: print(f"Error: {str(e)}") return None def insert_into_database(domain_name, expiration_date): try: # Connect to SQLite database conn = sqlite3.connect('domains.db') cursor = conn.cursor() # Create table if not exists cursor.execute('''CREATE TABLE IF NOT EXISTS domains ( domain_name TEXT PRIMARY KEY, expiry_date TEXT )''') # Insert domain name and expiration date cursor.execute('''INSERT OR REPLACE INTO domains (domain_name, expiry_date) VALUES (?, ?)''', (domain_name, expiration_date)) # Commit changes conn.commit() conn.close() except Exception as e: print(f"Error inserting into database: {str(e)}") def get_domain_expiring_today(): try: # Connect to SQLite database conn = sqlite3.connect('domains.db') cursor = conn.cursor() # Get today's date and format it to include time today_date = datetime.now() # Extract date component only today_date = today_date.replace(hour=0, minute=0, second=0, microsecond=0) # Query domains expiring today or in the past cursor.execute('''SELECT domain_name FROM domains WHERE expiry_date <= ?''', (today_date,)) expiring_domains = cursor.fetchall() # Close connection conn.close() return expiring_domains except Exception as e: print(f"Error querying database: {str(e)}") return [] def main(): expiring_domains = get_domain_expiring_today() if expiring_domains: print("Domains expiring today:") for domain_tuple in expiring_domains: domain_name = domain_tuple[0] print(domain_name) # Get expiry date from the database for the specific domain try: # Connect to SQLite database conn = sqlite3.connect('domains.db') cursor = conn.cursor() # Query the expiry date for the domain cursor.execute('''SELECT expiry_date FROM domains WHERE domain_name = ?''', (domain_name,)) expiry_date_in_db = cursor.fetchone() # Close connection conn.close() if expiry_date_in_db: expiry_date_in_db = expiry_date_in_db[0] # Extract the expiry date from the tuple print("expiry_date_in_db: " + str(expiry_date_in_db)) # Perform WHOIS check for the specific domain new_expiry_date = get_domain_expiration_date(domain_name) # Convert new_expiry_date to string new_expiry_date_str = new_expiry_date.strftime("%Y-%m-%d %H:%M:%S") # Convert the string back to datetime object new_date = datetime.strptime(new_expiry_date_str, "%Y-%m-%d %H:%M:%S") print("new_expiry_date: " + str(new_date)) if new_expiry_date: # Update database if expiry date has changed if new_expiry_date_str != expiry_date_in_db: insert_into_database(domain_name, new_expiry_date_str) print(f"Domain {domain_name} expiry date updated to {new_expiry_date}") else: print(f"Domain: {domain_name} expiries today") notification_title = f'Domain: {domain_name} expires today' notification_message = f'Domain {domain_name} expires today' send_desktop_notification(notification_title, notification_message) else: print(f"Failed to get expiry date for {domain_name}") else: print(f"Failed to get expiry date from the database for {domain_name}") except Exception as e: print(f"Error querying database: {str(e)}") continue else: print("No domains expiring today.") if __name__ == "__main__": main()