ionos_ddns_ssl_supervisor/scripts/ip_update.py
2025-03-13 00:01:19 +08:00

39 lines
1.2 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"]
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')
wildcard='*.'+ domain
#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:
print()
print("IP cambio indirizzo in", a )
subprocess.call(["ionos_dyndns.py", "-4","-H",wildcard,"--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)