Files
nixos-config/nixos/server/dyndns/dyndns.py
T

28 lines
761 B
Python

from nc_dnsapi import Client
import os, urllib3
CUSTOMER = os.environ["NC_CUSTOMER"]
API_PASSWORD = os.environ["NC_API_PASSWORD"]
API_KEY = os.environ["NC_API_KEY"]
DOMAIN = os.environ["NC_DOMAIN"]
ip = urllib3.request("GET", "https://api.ipify.org").data.decode()
with Client(CUSTOMER, API_KEY, API_PASSWORD) as api:
to_be_updated = []
records = api.dns_records(DOMAIN)
for record in records:
if record.type in ["A", "AAAA"] and record.destination != ip:
record.destination = ip
to_be_updated.append(record)
if to_be_updated:
api.update_dns_records(DOMAIN, to_be_updated)
zone = api.dns_zone(DOMAIN)
if zone.ttl != '300':
zone.ttl = '300'
api.update_dns_zone(DOMAIN, zone)