diff --git a/auto_ip_updater.py b/auto_ip_updater.py index 907b67d..f90c38c 100644 --- a/auto_ip_updater.py +++ b/auto_ip_updater.py @@ -67,6 +67,22 @@ def update_www_dns_record(ip_address: str, dns_record_id: str) -> dict: response = requests.put(url, headers=headers, json=data) return response.json() +def update_wildcard_dns_record(ip_address: str, dns_record_id: str) -> dict: + url = f"https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/dns_records/{dns_record_id}" + headers = { + "Authorization": f"Bearer {API_KEY}", + "Content-Type": "application/json" + } + data = { + "type": "A", + "name": "*." + ZONE_NAME, + "content": ip_address, + "ttl": 120, # Time to live, 120 seconds + "proxied": False + } + response = requests.put(url, headers=headers, json=data) + return response.json() + def main(): logging.basicConfig( @@ -94,6 +110,14 @@ def main(): logger.error("Failed to update DNS record.") logger.error(result) + wildcard_dns_record_id = get_dns_record_id("*.") + result = update_wildcard_dns_record(current_ip, wildcard_dns_record_id) + if result["success"]: + logger.info("Wildcard DNS record updated successfully.") + else: + logger.error("Failed to update DNS record.") + logger.error(result) + if __name__ == "__main__": main()