Hello Martin, > On 8 May 2021, at 13:20, Martin Krieger wrote: > > 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. Currently IPFire 2 only supports IPv4, but that is not mean to stay for forever and ddns is used elsewhere, too. > I adapted providers.py to force FesteIP.Net to use ipv4 according to the information on the homepage. I do not think that it is a good idea to implement half a provider. Could you maybe contact them and ask them to integrate their custom API into ddns? -Michael > > 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&myip=5.63.50.246 > 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 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 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 >>> >