import asyncio import websockets import json from datetime import datetime WS_URL = "ws://localhost:8080/domains-only" LOG_FILE = "certstream_listener_log.txt" def log_line(line): with open(LOG_FILE, "a", encoding="utf-8") as f: f.write(line + "\n") async def listen(): async with websockets.connect(WS_URL) as ws: while True: msg = await ws.recv() data = json.loads(msg) if data.get("message_type") != "dns_entries": continue domains = data.get("data", []) for domain in domains: clean = domain[2:] if domain.startswith("*.") else domain url = f"https://{clean}" timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") line = f"[{timestamp}] {url}" print(line) log_line(line) asyncio.run(listen())