ddns: Add provider Feste-IP.Net From: Martin Krieger <makrie@posteo.de>

Message ID 20210516165357.31862-1-makrie@posteo.de
State Dropped
Headers
Series ddns: Add provider Feste-IP.Net From: Martin Krieger <makrie@posteo.de> |

Commit Message

Martin Krieger May 16, 2021, 4:53 p.m. UTC
  Add support for provider Feste-IP.Net to ipfire ddns system.
Signed-off-by: Martin Krieger <makrie@posteo.de>
---
IPv6 support included based on API description but not tested. Test system is connected by VDSL and internet provider connection is pure IPv4 (No dualstack).
---
 README                |  1 +
 src/ddns/providers.py | 22 ++++++++++++++++++++++
 2 files changed, 23 insertions(+)
  

Patch

diff --git a/README b/README
index b6decb35c338..fa6ce5e598b8 100644
--- a/README
+++ b/README
@@ -68,6 +68,7 @@  SUPPORTED PROVIDERS:
 	easydns.com
 	enom.com
 	entrydns.net
+	feste-ip.net
 	freedns.afraid.org
 	inwx.com|de|at|ch|es
 	itsdns.de
diff --git a/src/ddns/providers.py b/src/ddns/providers.py
index 56e6620c78ab..c8be31622c3a 100644
--- a/src/ddns/providers.py
+++ b/src/ddns/providers.py
@@ -1178,6 +1178,28 @@  class DDNSProviderEntryDNS(DDNSProvider):
 		# If we got here, some other update error happened.
 		raise DDNSUpdateError
 
+class DDNSProviderFesteIPNet(DDNSProtocolDynDNS2, DDNSProvider):
+        handle    = "feste-ip.net"
+        name      = "Feste-IP.Net"
+        website   = "https://www.feste-ip.net/"
+
+        # Information about the format of the request is to be found
+        # https://forum.feste-ip.net/viewtopic.php?f=13&t=469 
+
+        url = "https://members.feste-ip.net/nic/update/"
+
+        def update(self):
+                data = DDNSProtocolDynDNS2.prepare_request_data(self, "ipv4")
+
+                # This one supports IPv6
+                myipv6 = self.get_address("ipv6")
+
+                # Add update information if we have an IPv6 address.
+                if myipv6:
+                        data["myip2"] = myipv6
+
+                self.send_request(data)
+
 
 class DDNSProviderFreeDNSAfraidOrg(DDNSProvider):
 	handle    = "freedns.afraid.org"