Python Script for automatically detecting changes to IP and updating A records for your Cloudflare Hosted Website
Go to file
0ceanSlim d0ba911df5 first commit 2024-01-09 09:33:16 -05:00
.gitignore first commit 2024-01-09 09:33:16 -05:00
LICENSE first commit 2024-01-09 09:33:16 -05:00
README.md first commit 2024-01-09 09:33:16 -05:00
update.py first commit 2024-01-09 09:33:16 -05:00

README.md

Cloudflare Dynamic DNS Updater

This Python script automatically updates your Cloudflare DNS records with your current public IP address whenever it changes.

Features

  • Automatically detects IP changes: The script checks your public IP and compares it to the last recorded IP.
  • Updates all 'A' type records: If a change is detected, it updates all 'A' type DNS records in the specified zone to the new IP.
  • Securely stores credentials: Cloudflare API credentials are stored in a separate JSON file for security.
  • User-friendly setup: The script guides you through the initial setup process, including entering your Cloudflare credentials.
  • Clear logging: The script provides informative messages about its actions, such as success or failure of DNS updates.

Requirements

  • Python 3.x
  • requests library (pip install requests)

Setup

  1. Obtain Cloudflare API credentials:
  • Log in to your Cloudflare account.
  • Go to My Profile > API Tokens.
  • Create a new API token with the Zone.Zone and DNS.Edit permissions.
  • Copy the API key and your Cloudflare email address.
  1. Install the required library:
pip install requests
  1. Run the script:
python update.py

The script will prompt you for your Cloudflare Zone ID, email, and API key if the credentials file doesn't exist.

  1. (Optional) Set up a cron job or create a service or use task scheduler in Windows: To automate the script's execution, set up a cron job to run it at regular intervals (e.g., every hour).

Usage

  • The script will automatically check for IP changes and update DNS records accordingly.
  • You can manually trigger a DNS update by running the script again.

Additional Notes

  • The script stores the last recorded IP in a file named last_ip.txt.
  • The script stores Cloudflare credentials in a file named credentials.json. Keep this file secure.
  • For more advanced usage, refer to the Cloudflare API documentation: https://api.cloudflare.com/

License

This project is licensed under the The MIT License - see the LICENSE file for details.