troglobit / inadyn

In-a-Dyn is a dynamic DNS client with multiple SSL/TLS library support
https://troglobit.com/projects/inadyn/
GNU General Public License v2.0
963 stars 139 forks source link

DNSExit.com present for updating DDNS no longer functions as of sometime after November 20th 2023. #465

Open theofficialgman opened 9 months ago

theofficialgman commented 9 months ago

the DNSExit.com present for updating DDNS no longer functions as of sometime after November 20th 2023.

The current error output is

In-a-dyn version 2.12.0 -- Dynamic DNS update client.
Failed connecting to ip3.dnsexit.com: Host is unreachable
Communication with checkip server ip3.dnsexit.com failed, run again with 'inadyn -l debug' if problem persists
Retrying with built-in 'default', http://ifconfig.me/ip ...
Please note, https://ip3.dnsexit.com/ seems unstable, consider overriding it inyour configuration with 'checkip-server = default'

https://github.com/troglobit/inadyn/blob/c62d719c45bec1122985edfb55306c3ab1ee1c97/plugins/dnsexit.c#L45

Checking DNSExit.com documentation the current api use is as follows:

curl https://api.dnsexit.com/dns/ud/?apikey=myapikey -d host=mydomainaddress

Additionally, before this DNSExit.com preset stopped working, the enable IPV6 function did not work correctly. Two requests were made to DNSExit.com, the first being the IPV4 address and then the IPV6 address afterwards which would overwrite the previously set IPV4 address https://github.com/troglobit/inadyn/blob/c62d719c45bec1122985edfb55306c3ab1ee1c97/plugins/dnsexit.c#L98-L102

theofficialgman commented 9 months ago

Additionally, before this DNSExit.com preset stopped working, the enable IPV6 function did not work correctly. Two requests were made to DNSExit.com, the first being the IPV4 address and then the IPV6 address afterwards which would overwrite the previously set IPV4 address

https://github.com/troglobit/inadyn/blob/c62d719c45bec1122985edfb55306c3ab1ee1c97/plugins/dnsexit.c#L98-L102

this particular issue could likely be resolved if you use the latest API https://dnsexit.com/dns/dns-api/ and update the A and AAAA instead of the myip= http method.

theofficialgman commented 9 months ago

Can confirm the above ^ Using the API with the multiple update in the format as follows works as expected:

curl  -H "Content-Type: application/json" --data @/tmp/update-full.json https://api.dnsexit.com/dns/

/tmp/update-full.json

{
   "apikey": "myapikey",
   "domain": "domainaddress",
   "update": [
    {
      "type": "A",
      "name": "",
      "content": "ipv4address",
      "ttl": 60
    },
    { 
      "type": "AAAA",
      "name": "",
      "content": "ipv6address",
      "ttl": 60
    }
   ] 
}
troglobit commented 9 months ago

Great, a solution is available. Contributions are welcome, as usual.

sparksofinsanity commented 9 months ago

Please note, https://ip3.dnsexit.com/ seems unstable

This is an SSL error The IP Check server does not support SSL

http://ip3.dnsexit.com/ https://ip3.dnsexit.com/