Cloudflare DNS Updater written in Rust. Works for IPv4 and IPv6 alike.
Find a file
2023-02-26 22:44:50 +01:00
src Seperated API Key into different config file 2023-02-26 01:49:02 +01:00
.gitignore Seperated API Key into different config file 2023-02-26 01:49:02 +01:00
api-key-empty.json Remove Dockerfile, opting for linux container instead 2023-02-26 22:44:50 +01:00
Cargo.lock Rewrite in Rust 2023-02-26 01:10:39 +01:00
Cargo.toml Rewrite in Rust 2023-02-26 01:10:39 +01:00
cloudflare.json add all current DNS records 2022-11-27 14:14:18 +01:00
config.json Seperated API Key into different config file 2023-02-26 01:49:02 +01:00
README.md Modified README.md (new information), added requirements.txt for easy venv setup 2022-11-27 16:42:15 +01:00

Cloudflare DNS Updater

Create and activating a venv

Make sure Python 3.10 or higher is installed. Use cd to change to the location of this repository.

Now, run

py -3.10 -m venv venv

Replace the -3.10 with other Python versions if necessary (ex.: -3.11)

Activate the venv using the command

venv/scripts/activate

Installing the required packages

Make sure the venv is activated.

Run the following command

pip install -r requirements.txt

Alternatively, the packages can be installed manually by using pip install.

The full list of packages needed:

  • cloudflare (Version 2.0.0 or greater)
  • Buildins:
    • json
    • configparser
    • ipaddress
    • sys

Using the script

Before running the script, make sure there exists a config.ini file next to the cloudflare_script.py. The config has to have the following structure:

[cloudflare]
TOKEN=<cloudflare api token>

[server]
HOSTNAME=hostname-of-website.com

Run the script using the following arguments:

python cloudflare_script.py <ipversion> <path/to/ip/list>

IP-Version can be 4 or 6. The IP-List has to conform to the following structure and be a json file:

{
  "AAAA": [
    "ipv6 site prefix"
  ],
  "A": [
    "ipv4 site prefix"
  ]
}

To only get the currently registered DNS records for a given API key, run

python cloudflare_script.py

THis will print all DNS records for the API key with name, ip, cloudflare id and ip-version