X-Git-Url: https://git.ralfj.de/dyn-nsupdate.git/blobdiff_plain/d711f3a81a328a3edc4b088923181d17a203910a..b1006fae0117ac7c0062e92b5842bf9eb9179c6d:/client-scripts/dyn-ns-client diff --git a/client-scripts/dyn-ns-client b/client-scripts/dyn-ns-client index 57c68e9..f482c19 100755 --- a/client-scripts/dyn-ns-client +++ b/client-scripts/dyn-ns-client @@ -61,9 +61,15 @@ def getMyIP(family, config, methods = {}, verbose = 0): method = config[family]['method'] if method == 'none': return None + elif method == 'remove': + return "" elif method == 'web': server = config[family].get('server', config['DEFAULT']['server']) - ip = urlopen('https://'+server+'/checkip', config) + url = 'https://'+server+'/checkip' + try: + ip = urlopen(url, config) + except urllib.error.URLError: + raise Exception("Error fetching {}, make sure the URL is correct and the internet connection actually works.".format(url)) if verbose >= VERBOSE_FULL: print("Server",server,"says my",family,"is",ip) return ip @@ -143,9 +149,15 @@ def updateDomain(server, domain, ipv4, ipv6, password, config, verbose): if verbose >= VERBOSE_CHANGE: msg = "Successfully updated domain {} on {}:".format(domain, server) if ipv4 is not None: - msg += " IPv4={}".format(ipv4) + if curIPv4 == ipv4: + msg += " IPv4={} (unchanged)".format(curIPv4) + else: + msg += " IPv4={} -> {}".format(curIPv4, ipv4) if ipv6 is not None: - msg += " IPv6={}".format(ipv6) + if curIPv6 == ipv6: + msg += " IPv6={} (unchanged)".format(curIPv6) + else: + msg += " IPv6={} -> {}".format(curIPv6, ipv6) print(msg) # all went all right return True @@ -162,7 +174,7 @@ if __name__ == "__main__": dest="config", default=os.path.join(getConfigDir(), "dyn-ns-client.conf"), help="The configuration file") parser.add_argument("-v", "--verbose", - action="count", dest="verbose", + action="count", dest="verbose", default=0, help="Be more verbose") args = parser.parse_args()