ionos_ddns_ssl_supervisor2/scripts/ip_update.py
2025-06-25 15:40:38 +08:00

45 lines
1.3 KiB
Python
Executable file

#!/usr/bin/env python3
import socket
import public_ip as ip
import time
import subprocess
import sys
import os
from datetime import datetime
from configparser import ConfigParser
parser = ConfigParser()
domain = os.environ["DOMAIN"]
site = os.environ["SITE"]
sites = site.split(",")
with open('/secret/' + domain + '.ini') as stream:
parser.read_string("[top]\n" + stream.read())
dns_ionos_prefix=parser.get('top','dns_ionos_prefix')
dns_ionos_secret=parser.get('top','dns_ionos_secret')
#print(dns_ionos_prefix ,dns_ionos_secret, wildcard)
#print("eseguo ./ionos_dyndns.py -4 -H "+wildcard+" --api-prefix "+dns_ionos_prefix+" --api-secret "+dns_ionos_secret)
#subprocess.call(["./ionos_dyndns.py", "-4","-H",wildcard,"--api-prefix",dns_ionos_prefix,"--api-secret",dns_ionos_secret])
k = 0
while True:
a=ip.get()
b=socket.gethostbyname('cicco.' + domain)
#print(a, b)
if a != b:
for y in sites:
if (y==""):
d=domain
else:
d=y+'.'+domain
print()
print("IP cambio indirizzo di ",d," in ", a )
subprocess.call(["ionos_dyndns.py", "-4","-H",d,"--api-prefix",dns_ionos_prefix,"--api-secret",dns_ionos_secret])
else:
if k == 0:
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M"))
if k == 10:
k = 0
else:
k=k+1
print("X", end="", flush=True)
time.sleep(300)