Add config and option for purgeUnknownRecords
This commit is contained in:
parent
458559d52c
commit
0a85b04287
@ -33,6 +33,7 @@ def getIPs():
|
|||||||
aaaa = None
|
aaaa = None
|
||||||
global ipv4_enabled
|
global ipv4_enabled
|
||||||
global ipv6_enabled
|
global ipv6_enabled
|
||||||
|
global purgeUnknownRecords
|
||||||
if ipv4_enabled:
|
if ipv4_enabled:
|
||||||
try:
|
try:
|
||||||
a = requests.get("https://1.1.1.1/cdn-cgi/trace").text.split("\n")
|
a = requests.get("https://1.1.1.1/cdn-cgi/trace").text.split("\n")
|
||||||
@ -43,7 +44,8 @@ def getIPs():
|
|||||||
if not shown_ipv4_warning:
|
if not shown_ipv4_warning:
|
||||||
shown_ipv4_warning = True
|
shown_ipv4_warning = True
|
||||||
print("🧩 IPv4 not detected")
|
print("🧩 IPv4 not detected")
|
||||||
deleteEntries("A")
|
if purgeUnknownRecords:
|
||||||
|
deleteEntries("A")
|
||||||
if ipv6_enabled:
|
if ipv6_enabled:
|
||||||
try:
|
try:
|
||||||
aaaa = requests.get("https://[2606:4700:4700::1111]/cdn-cgi/trace").text.split("\n")
|
aaaa = requests.get("https://[2606:4700:4700::1111]/cdn-cgi/trace").text.split("\n")
|
||||||
@ -54,7 +56,8 @@ def getIPs():
|
|||||||
if not shown_ipv6_warning:
|
if not shown_ipv6_warning:
|
||||||
shown_ipv6_warning = True
|
shown_ipv6_warning = True
|
||||||
print("🧩 IPv6 not detected")
|
print("🧩 IPv6 not detected")
|
||||||
deleteEntries("AAAA")
|
if purgeUnknownRecords:
|
||||||
|
deleteEntries("AAAA")
|
||||||
ips = {}
|
ips = {}
|
||||||
if(a is not None):
|
if(a is not None):
|
||||||
ips["ipv4"] = {
|
ips["ipv4"] = {
|
||||||
@ -118,12 +121,13 @@ def commitRecord(ip):
|
|||||||
print("➕ Adding new record " + str(record))
|
print("➕ Adding new record " + str(record))
|
||||||
response = cf_api(
|
response = cf_api(
|
||||||
"zones/" + option['zone_id'] + "/dns_records", "POST", option, {}, record)
|
"zones/" + option['zone_id'] + "/dns_records", "POST", option, {}, record)
|
||||||
for identifier in duplicate_ids:
|
if purgeUnknownRecords:
|
||||||
identifier = str(identifier)
|
for identifier in duplicate_ids:
|
||||||
print("🗑️ Deleting stale record " + identifier)
|
identifier = str(identifier)
|
||||||
response = cf_api(
|
print("🗑️ Deleting stale record " + identifier)
|
||||||
"zones/" + option['zone_id'] + "/dns_records/" + identifier,
|
response = cf_api(
|
||||||
"DELETE", option)
|
"zones/" + option['zone_id'] + "/dns_records/" + identifier,
|
||||||
|
"DELETE", option)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def cf_api(endpoint, method, config, headers={}, data=False):
|
def cf_api(endpoint, method, config, headers={}, data=False):
|
||||||
@ -165,6 +169,7 @@ if __name__ == '__main__':
|
|||||||
shown_ipv6_warning = False
|
shown_ipv6_warning = False
|
||||||
ipv4_enabled = True
|
ipv4_enabled = True
|
||||||
ipv6_enabled = True
|
ipv6_enabled = True
|
||||||
|
purgeUnknownRecords = False
|
||||||
|
|
||||||
if(version < 3.5):
|
if(version < 3.5):
|
||||||
raise Exception("🐍 This script requires Python 3.5+")
|
raise Exception("🐍 This script requires Python 3.5+")
|
||||||
@ -185,6 +190,11 @@ if __name__ == '__main__':
|
|||||||
ipv4_enabled = True
|
ipv4_enabled = True
|
||||||
ipv6_enabled = True
|
ipv6_enabled = True
|
||||||
print("⚙️ Individually disable IPv4 or IPv6 with new config.json options. Read more about it here: https://github.com/timothymiller/cloudflare-ddns/blob/master/README.md")
|
print("⚙️ Individually disable IPv4 or IPv6 with new config.json options. Read more about it here: https://github.com/timothymiller/cloudflare-ddns/blob/master/README.md")
|
||||||
|
try:
|
||||||
|
purgeUnknownRecords = config["purgeUnknownRecords"]
|
||||||
|
except:
|
||||||
|
purgeUnknownRecords = False
|
||||||
|
print("⚙️ No config detected for 'purgeUnknownRecords' - defaulting to False")
|
||||||
if(len(sys.argv) > 1):
|
if(len(sys.argv) > 1):
|
||||||
if(sys.argv[1] == "--repeat"):
|
if(sys.argv[1] == "--repeat"):
|
||||||
delay = 5*60
|
delay = 5*60
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"purgeUnknownRecords": false,
|
||||||
"cloudflare": [
|
"cloudflare": [
|
||||||
{
|
{
|
||||||
"authentication": {
|
"authentication": {
|
||||||
|
|||||||
Reference in New Issue
Block a user