Hello Michael,
unfortunately my actual Python knowledge is very basic. I found no solution to implement ipv6 in addition to ipv4. Also IPFire is based on ipv4 and will be there in future as far as I understood.
I adapted providers.py to force FesteIP.Net to use ipv4 according to the information on the homepage.
A test showed no issue:
ddns -d update --force ipfire.feste-ip.net
Running on distribution: ipfire-2 Loading configuration file /var/ipfire/ddns/ddns.conf Updating ipfire.feste-ip.net forced Sending request (GET): https://v4.members.feste-ip.net/nic/update/?hostname=ipfire.feste-ip.net&... Request header: Authorization: Basic MjA2MDA0Ol84UnN2bjZidDk= User-agent: IPFireDDNSUpdater/013 Pragma: no-cache Response header (Status Code 200): Date: Sat, 08 May 2021 12:01:04 GMT Content-Type: text/plain Connection: close Accept-Ranges: none Server: Feste-IP.net Server Strict-Transport-Security: max-age=15768000 Dynamic DNS update for ipfire.feste-ip.net (Feste-IP.Net) successful Logging successful update for ipfire.feste-ip.net Opening database /var/lib/ddns.db
So, from my point of view the patch should do the job.
Regards,
Martin Krieger
diff --git a/README b/README index b6decb3..fa6ce5e 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 56e6620..8348ed1 100644 --- a/src/ddns/providers.py +++ b/src/ddns/providers.py @@ -1178,6 +1178,17 @@ 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/" + protocols = ("ipv4",) + + # Information about the format of the request is to be found + # https://www.feste-ip.net/ddns-service/einrichtung/linux/ + # https://www.feste-ip.net/ddns-service/einrichtung/ipv4-ipv6/ + + url = "https://v4.members.feste-ip.net/nic/update"
class DDNSProviderFreeDNSAfraidOrg(DDNSProvider): handle = "freedns.afraid.org"
Michael Tremer:
Hello Martin,
On 6 May 2021, at 11:21, Martin Krieger makrie@posteo.de wrote:
Hello Michael,
by eMail again, because I didn't figure out to use git (commit, format-patch & send-email) in the correct way for patch submission. Sorry.
Regards,
Martin Krieger
diff --git a/README b/README index b6decb3..fa6ce5e 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 56e6620..c53ff9a 100644 --- a/src/ddns/providers.py +++ b/src/ddns/providers.py @@ -1178,6 +1178,16 @@ 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/"
protocols = ("ipv4","ipv6")
According to the documentation, the request has to be sent to a different host for IPv6. Just adding it to the list probably won’t work because this provider has implemented a different way to use the DynDNS API.
# Information about the format of the request is to be found
# https://www.feste-ip.net/ddns-service/einrichtung/linux/
url = "https://members.feste-ip.net/nic/update"
class DDNSProviderFreeDNSAfraidOrg(DDNSProvider): handle = "freedns.afraid.org"
Michael Tremer:
Hello Martin, Thank you very much for your submission.
On 5 May 2021, at 19:13, Martin Krieger makrie@posteo.de wrote:
diff --git a/README b/README index b6decb3..fa6ce5e 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 56e6620..c70423b 100644 --- a/src/ddns/providers.py +++ b/src/ddns/providers.py @@ -1178,6 +1178,16 @@ 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/"
You are missing a “:” in the URL.
protocols = ("ipv4",)
According to this documentation, the provider supports IPv6 as well: https://www.feste-ip.net/ddns-service/einrichtung/linux/
# Information about the format of the request is to be found
# https://www.feste-ip.net/ddns-service/allgemeine-informationen/
url = "https://members.feste-ip.net/nic/update"
class DDNSProviderFreeDNSAfraidOrg(DDNSProvider): handle = “freedns.afraid.org"
Best, -Michael