[+] Whois update script
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user