[+] Whois update script

This commit is contained in:
Hykilpikonna
2022-07-20 21:40:32 -04:00
committed by GitHub
parent b9a30ce784
commit 1566a46057
+58
View File
@@ -0,0 +1,58 @@
#!/usr/bin/env python3
import datetime
from pathlib import Path
from subprocess import check_output
import requests
from dateutil.parser import isoparse
DOMAIN = 'google.com'
TG_TOKEN = 'YOUR TOKEN HERE'
# TG_CHAT_ID = 879777248
TG_CHAT_ID = -1
def log_tg(msg: str):
print(msg)
requests.get(f"https://api.telegram.org/{TG_TOKEN}/sendMessage",
params={'chat_id': TG_CHAT_ID, 'text': msg, 'disable_web_page_preview': True})
def check(domain: str):
date = datetime.datetime.now().strftime('%Y-%m-%d %H:%M')
p = Path(f'data/domain-{domain}-whois.txt')
p.parent.mkdir(parents=True, exist_ok=True)
new = check_output(['whois', domain]).decode('utf-8')
# Remove database update line
lines = []
db_update_date = 'Not found'
for i, line in enumerate(new.split('\n')):
if line.startswith('>>> Last update of Whois database:'):
print(line)
db_update_date = line.replace('>>> Last update of Whois database: ', '').replace(' <<<', '')
db_update_date = isoparse(db_update_date).astimezone().strftime('%Y-%m-%d %H:%M')
else:
lines.append(line)
new = '\n'.join(lines)
def report(msg: str, out: bool):
log_tg(f'Check on {date} (DB {db_update_date}): \n> {msg}')
if out:
log_tg('\n'.join(new.split('\n')[:20]))
if p.is_file():
old = p.read_text('utf-8')
if old == new:
report(f'No change detected.', False)
else:
report('Change detected.', True)
else:
report("The domain haven't been checked before.", True)
p.write_text(new)
if __name__ == '__main__':
check(DOMAIN)