27 lines
738 B
Python
27 lines
738 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("ascii")
|
|
|
|
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)
|
|
|
|
|
|
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)
|