Domain Name Tips
- 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 domainimport 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 languageimport 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 pastimport 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()