From c8c7ca8f599077aaa5c477e74dbb550dc4772cbc Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 15 Jun 2014 22:06:29 +0200 Subject: [PATCH] Add variomedia as new provider. --- ddns.conf.sample | 6 ++++++ src/ddns/__init__.py | 1 + src/ddns/providers.py | 23 +++++++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/ddns.conf.sample b/ddns.conf.sample index bb0e839..28aa4e5 100644 --- a/ddns.conf.sample +++ b/ddns.conf.sample @@ -51,3 +51,9 @@ # token = token # username = user # password = pass + +# [test.variomedia.de] +# provider = variomedia.de +# username = user +# password = pass +# proto = ipv4 OR ipv6 diff --git a/src/ddns/__init__.py b/src/ddns/__init__.py index 5172832..d91d9f0 100644 --- a/src/ddns/__init__.py +++ b/src/ddns/__init__.py @@ -98,6 +98,7 @@ class DDNSCore(object): DDNSProviderNOIP, DDNSProviderLightningWireLabs, DDNSProviderSelfhost, + DDNSProviderVariomedia, ): self.register_provider(provider) diff --git a/src/ddns/providers.py b/src/ddns/providers.py index 8a5185f..2ac3caf 100644 --- a/src/ddns/providers.py +++ b/src/ddns/providers.py @@ -489,3 +489,26 @@ class DDNSProviderSelfhost(DDNSProvider): match = re.search("status=20(0|4)", response.read()) if not match: raise DDNSUpdateError + +class DDNSProviderVariomedia(DDNSProviderDynDNS): + INFO = { + "handle" : "variomedia.de", + "name" : "Variomedia", + "website" : "http://www.variomedia.de/", + "protocols" : ["ipv6", "ipv4",] + } + + # Detailed information about the request can be found here + # https://dyndns.variomedia.de/ + + url = "https://dyndns.variomedia.de/nic/update" + + @property + def proto(self): + return self.get("proto") + + def _prepare_request_data(self): + data = { + "hostname" : self.hostname, + "myip" : self.get_address(self.proto) + } -- 2.39.2