72 lines
1.4 KiB
Markdown
72 lines
1.4 KiB
Markdown
# 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:
|
|
```ini
|
|
[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:
|
|
```json
|
|
{
|
|
"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 |