ddns-scripts: Add more services and minor changes
authorChristian Schoenebeck <christian.schoenebeck@gmail.com>
Sat, 24 Sep 2016 10:44:50 +0000 (12:44 +0200)
committerChristian Schoenebeck <christian.schoenebeck@gmail.com>
Mon, 26 Sep 2016 19:24:35 +0000 (21:24 +0200)
- add support of knsupdate (update_nsupdate.sh
- url update easydns.com
- add some service answers
- alphabetic reorder services files for easier reading
- rename services/provider (Makefile postinst handle /etc/config/ddns)
 -- freedns.afraid.org -> afraid.org
 -- free.editdns.net -> editdns.net
 -- domains.google.com -> google.com
 -- spdns.de -> spdyn.de
 -- strato.de -> strato.com
- new provider (looking in deep into https://sourceforge.net/projects/inadyn-mt project)
 -- dyn.com (= dyndns.org)
 -- ddnss.de
 -- dhis.org
 -- dnspark.com (IPv4 only)
 -- dynsip.org (IPv4 only)
 -- dynv6.com
 -- joker.com (IPv4 only)
 -- loopia.com (= loopia.se)
 -- sitelutions.com (IPv4 only)
 -- system-ns.com (IPv4 only)
- new provider (looking in deep into /etc.defaults/ddns_provider.conf file for Synology DiskStation published at https://gist.github.com/ntrepid8/6653274)
 -- able.or.kr (IPv4 only)
 -- ddo.jp (IPv4 only)
 -- dnsmadeeasy.com (IPv4 only)
 -- oray.com (IPv4 only)
- new provider (looking in deep into https://github.com/ipfire/ddns project)
 -- all-inkl.com
 -- desec.io
 -- domopoli.de (IPv4 only)
 -- opendns.com (IPv4 only)
 -- udmedia.de
 -- xlhost.de (IPv4 only)
- new provider (looking in deep into https://github.com/yaddns/yaddns project )
 -- dyndns.it (IPv4 only)

Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
net/ddns-scripts/Makefile
net/ddns-scripts/files/dynamic_dns_updater.sh
net/ddns-scripts/files/services
net/ddns-scripts/files/services_ipv6
net/ddns-scripts/files/update_nsupdate.sh

index c76dbac1164af51066f6e963bcd800b6df09a990..1177402375b4d10b95e139441d8d27ae89263402 100755 (executable)
@@ -12,7 +12,7 @@ PKG_NAME:=ddns-scripts
 PKG_VERSION:=2.7.4
 # Release == build
 # increase on changes of services files or tld_names.dat
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_LICENSE:=GPL-2.0
 PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
@@ -139,6 +139,13 @@ define Package/$(PKG_NAME)/postinst
        uci -q get ddns.global.allow_local_ip > /dev/null || uci -q set ddns.global.allow_local_ip='0'
        uci -q commit ddns
 
+       # fix some service_name entries to new once
+       /bin/sed -i '/service_name/s/freedns.afraid.org/afraid.org/g' /etc/config/ddns
+       /bin/sed -i '/service_name/s/free.editdns.net/editdns.net/g' /etc/config/ddns
+       /bin/sed -i '/service_name/s/domains.google.com/google.com/g' /etc/config/ddns
+       /bin/sed -i '/service_name/s/spdns.de/spdyn.de/g' /etc/config/ddns
+       /bin/sed -i '/service_name/s/strato.de/strato.com/g' /etc/config/ddns
+
        # clear LuCI indexcache
        rm -f /tmp/luci-indexcache >/dev/null 2>&1
 
index a4fb820f78bdd636417fc17f2a0c760149c42961..315447a1f0f6743a1ba36cadd4c5d7e012c85b3c 100755 (executable)
 # variables in big chars beginning with "__" are local defined inside functions only
 # set -vx      #script debugger
 
-. /usr/lib/ddns/dynamic_dns_functions.sh       # global vars are also defined here
+. $(dirname $0)/dynamic_dns_functions.sh       # global vars are also defined here
 
 [ $# -lt 1 -o -n "${2//[0-3]/}" -o ${#2} -gt 1 ] && {
-       echo -e "\n  ddns-scripts Version: $VERSION"
-       echo -e "\n  USAGE:"
-       echo    "  $0 [OPTION]"
-       echo    "  [OPTION]       '-V' or '--version' display version and exit"
-       echo -e "\n  $0 [SECTION] [VERBOSE_MODE]\n"
-       echo    "  [SECTION]      - service section as defined in /etc/config/ddns"
-       echo    "  [VERBOSE_MODE] - '0' NO output to console"
-       echo    "                   '1' output to console"
-       echo    "                   '2' output to console AND logfile"
-       echo    "                       + run once WITHOUT retry on error"
-       echo    "                   '3' output to console AND logfile"
-       echo    "                       + run once WITHOUT retry on error"
-       echo -e "                       + NOT sending update to DDNS service\n"
+       local __ME=$(basename $0)
+       cat << EOF
+ddns-scripts Version: $VERSION
+
+Usage:
+  $__ME -V         display version and exit
+  $__ME --version  display version and exit
+
+  $__ME <SECTION> <VERBOSE_MODE>
+  <SECTION>        service section as defined in /etc/config/ddns
+  <VERBOSE_MODE>   '0' NO output to console
+                   '1' output to console
+                   '2' output to console AND logfile
+                       + run once WITHOUT retry on error
+                   '3' output to console AND logfile
+                       + run once WITHOUT retry on error
+                       + NOT sending update to DDNS service
+
+EOF
        exit 1
 }
 
 [ "$1" = "-V" -o "$1" = "--version" ] && {
-       echo -e "ddns-scripts $VERSION\n"
+       printf %s\\n "ddns-scripts $VERSION"
        exit 0
 }
 
index 720f0594ffee217923ebf43c17bf4f7c649d2824..ddad35dc08b0ab25b76a537b4559e9708224672e 100644 (file)
 # "answer"     single words inside providers answer string; use "|" to combine "or"
 #
 # 44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
+#
+# cloudflare.com       !!! Please install additional package "ddns-scripts_cloudflare"
+# no-ip.com / noip.com !!! Please install additional package "ddns-scripts_no-ip_com"
 
-"dyndns.org"           "http://[USERNAME]:[PASSWORD]@members.dyndns.org/nic/update?hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
-"changeip.com"         "http://[USERNAME]:[PASSWORD]@nic.changeip.com/nic/update?u=[USERNAME]&p=[PASSWORD]&cmd=update&hostname=[DOMAIN]&ip=[IP]"
-"zoneedit.com"         "http://[USERNAME]:[PASSWORD]@dynamic.zoneedit.com/auth/dynamic.html?host=[DOMAIN]&dnsto=[IP]"
-"free.editdns.net"     "http://dyndns-free.editdns.net/api/dynLinux.php?p=[PASSWORD]&r=[DOMAIN]"
+"3322.org"             "http://[USERNAME]:[PASSWORD]@members.3322.org/dyndns/update?system=dyndns&hostname=[DOMAIN]&myip=[IP]"
 
-# freedns.afraid.org is weird, you just need an update code, for which we use the password variable
-"freedns.afraid.org"   "http://freedns.afraid.org/dynamic/update.php?[PASSWORD]&address=[IP]"
+"able.or.kr"           "http://able.or.kr/ddns/src/update.php?hostname=[DOMAIN]&myip=[IP]&ddnsuser=[USERNAME]&pwd=[PASSWORD]"
 
-# DNS Max and resellers' update urls
-"dnsmax.com"   "http://update.dnsmax.com/update/?username=[USERNAME]&password=[PASSWORD]&resellerid=1&clientname=openwrt&clientversion=8.09&protocolversion=2.0&updatehostname=[DOMAIN]&ip=[IP]"
-"thatip.com"   "http://update.dnsmax.com/update/?username=[USERNAME]&password=[PASSWORD]&resellerid=2&clientname=openwrt&clientversion=8.09&protocolversion=2.0&updatehostname=[DOMAIN]&ip=[IP]"
+"afraid.org"           "http://freedns.afraid.org/dynamic/update.php?[PASSWORD]&address=[IP]"
 
-# Hurricane Electric Dynamic DNS
-"he.net"       "http://[DOMAIN]:[PASSWORD]@dyn.dns.he.net/nic/update?hostname=[DOMAIN]&myip=[IP]"      "good|nochg"
+"all-inkl.com"         "http://[USERNAME]:[PASSWORD]@dyndns.kasserver.com/?myip=[IP]"
 
-# DNSdynamic.org
-"dnsdynamic.org"       "http://[USERNAME]:[PASSWORD]@www.dnsdynamic.org/api/?hostname=[DOMAIN]&myip=[IP]"      "good|nochg"
+"changeip.com"         "http://[USERNAME]:[PASSWORD]@nic.changeip.com/nic/update?u=[USERNAME]&p=[PASSWORD]&cmd=update&hostname=[DOMAIN]&ip=[IP]"       "good|NOCHG"
+
+"core-networks.de"     "http://[USERNAME]:[PASSWORD]@dyndns.core-networks.de/?hostname=[DOMAIN]&myip=[IP]&keepipv6=1"  "good"
 
-# dnsExit.com free dynamic DNS update url
-"dnsexit.com"  "http://www.dnsexit.com/RemoteUpdate.sv?login=[USERNAME]&password=[PASSWORD]&host=[DOMAIN]&myip=[IP]"
+"ddns.com.br"          "http://[DOMAIN]:[PASSWORD]@members.ddns.com.br/nic/update?hostname=[DOMAIN]&myip=[IP]"
 
-# OVH
-"ovh.com"      "http://[USERNAME]:[PASSWORD]@www.ovh.com/nic/update?system=dyndns&hostname=[DOMAIN]&myip=[IP]"
+# "ddnss.de"           "http://[USERNAME]:[PASSWORD]@ip4.ddnss.de/upd.php?host=[DOMAIN]&ip=[IP]"       "good|nochg"
+"ddnss.de"             "http://ip4.ddnss.de/upd.php?user=[USERNAME]&pwd=[PASSWORD]&host=[DOMAIN]&ip=[IP]"      "good|nochg"
 
-# dns-o-matic is a free service by opendns.com for updating multiple hosts
-"dnsomatic.com"        "http://[USERNAME]:[PASSWORD]@updates.dnsomatic.com/nic/update?hostname=[DOMAIN]&myip=[IP]"     "good|nochg"
+"ddo.jp"               "http://free.ddo.jp/dnsupdate.php?dn=[DOMAIN]&pw=[PASSWORD]&ip=[IP]"
 
-# 3322.org
-"3322.org"     "http://[USERNAME]:[PASSWORD]@members.3322.org/dyndns/update?system=dyndns&hostname=[DOMAIN]&myip=[IP]"
+"desec.io"             "http://[USERNAME]:[PASSWORD]@update.dedyn.io/?hostname=[DOMAIN]&myipv4=[IP]"   "good|nochg"
 
-# namecheap.com
-"namecheap.com"        "http://dynamicdns.park-your-domain.com/update?host=[USERNAME]&domain=[DOMAIN]&password=[PASSWORD]&ip=[IP]"
+"dhis.org"             "http://[USERNAME]:[PASSWORD]@is.dhis.org/"
 
-# easydns.com dynamic DNS
-"easydns.com"  "http://[USERNAME]:[PASSWORD]@api.cp.easydns.com/dyn/tomato.php?hostname=[DOMAIN]&myip=[IP]"
+"dnsdynamic.org"       "http://[USERNAME]:[PASSWORD]@www.dnsdynamic.org/api/?hostname=[DOMAIN]&myip=[IP]"      "good|nochg"
 
-# Winco DDNS
-"ddns.com.br"  "http://[DOMAIN]:[PASSWORD]@members.ddns.com.br/nic/update?hostname=[DOMAIN]&myip=[IP]"
+"dnsexit.com"          "http://www.dnsexit.com/RemoteUpdate.sv?login=[USERNAME]&password=[PASSWORD]&host=[DOMAIN]&myip=[IP]"   "0=|1="
 
-# Mythic Beasts Dynamic DNS
-"mythic-beasts.com"    "http://dnsapi4.mythic-beasts.com/?domain=[USERNAME]&password=[PASSWORD]&command=REPLACE%20[DOMAIN]%2060%20A%20DYNAMIC_IP&origin=."
+"dnshome.de"           "http://[USERNAME]:[PASSWORD]@www.dnshome.de/dyndns.php?hostname=[DOMAIN]&ip=[IP]"
 
-# Securepoint Dynamic-DNS-Service      (http://www.spdns.de)
-"spdns.de"     "http://[USERNAME]:[PASSWORD]@update.spdyn.de/nic/update?hostname=[DOMAIN]&myip=[IP]"   "good|nochg"
-"spdyn.de"     "http://[USERNAME]:[PASSWORD]@update.spdyn.de/nic/update?hostname=[DOMAIN]&myip=[IP]"   "good|nochg"
+"dnsmadeeasy.com"      "http://www.dnsmadeeasy.com/servlet/updateip?username=[USERNAME]&password=[PASSWORD}&id=[DOMAIN]&ip=[IP]"       "success|ip-same"
 
-# duiadns.net - free dynamic DNS
-"duiadns.net"  "http://[USERNAME]:[PASSWORD]@ipv4.duia.ro/dynamic.duia?host=[DOMAIN]&ip4=[IP]"
+"dnsmax.com"           "http://update.dnsmax.com/update/?username=[USERNAME]&password=[PASSWORD]&resellerid=1&clientname=openwrt&clientversion=8.09&protocolversion=2.0&updatehostname=[DOMAIN]&ip=[IP]"
 
-# Two-DNS - Simply. Connected. Everywhere.
-"twodns.de"    "http://[USERNAME]:[PASSWORD]@update.twodns.de/update?hostname=[DOMAIN]&ip=[IP]"
+"dnsomatic.com"                "http://[USERNAME]:[PASSWORD]@updates.dnsomatic.com/nic/update?hostname=[DOMAIN]&myip=[IP]"     "good|nochg"
 
-# MyDNS.JP
-"mydns.jp"     "http://www.mydns.jp/directip.html?MID=[USERNAME]&PWD=[PASSWORD]&IPV4ADDR=[IP]"
+"dnspark.com"          "http://[USERNAME]:[PASSWORD]@control.dnspark.com/api/dynamic/update.php?hostname=[DOMAIN]&ip=[IP]"     "ok|nochange"
 
-# LoopiaDNS
-"loopia.se"    "http://[USERNAME]:[PASSWORD]@dns.loopia.se/XDynDNSServer/XDynDNS.php?system=custom&hostname=[DOMAIN]&myip=[IP]"
+"do.de"                        "http://ddns.do.de/?myip=[IP]&hostname=[DOMAIN]&username=[USERNAME]&password=[PASSWORD]"        "good|nochg"
 
-# SelfHost.de
-"selfhost.de"  "http://carol.selfhost.de/update?username=[USERNAME]&password=[PASSWORD]&myip=[IP]&hostname=1"  "good|nochg"
+"domopoli.de"          "http://[USERNAME]:[PASSWORD]@http://dyndns.domopoli.de/nic/update?hostname=[DOMAIN]&myip=[IP]" "good|nochg"
 
-# no-ip.pl nothing to do with no-ip.com (domain registered to www.domeny.tv) (IP autodetected by provider)
-"no-ip.pl"     "http://[USERNAME]:[PASSWORD]@update.no-ip.pl/?hostname=[DOMAIN]"
+"dtdns.com"            "http://www.dtdns.com/api/autodns.cfm?id=[DOMAIN]&pw=[PASSWORD]&ip=[IP]"
 
-# domains.google.com   non free service - require HTTPS communication
-"domains.google.com"   "http://[USERNAME]:[PASSWORD]@domains.google.com/nic/update?hostname=[DOMAIN]&myip=[IP]"
+"duckdns.org"          "http://www.duckdns.org/update?domains=[USERNAME]&token=[PASSWORD]&ip=[IP]"     "OK"
 
-# Schokokeks Hosting, schokokeks.org
-"schokokeks.org"       "http://[USERNAME]:[PASSWORD]@dyndns.schokokeks.org/nic/update?myip=[IP]"       "good|nochg"
+"duiadns.net"          "http://[USERNAME]:[PASSWORD]@ipv4.duia.ro/dynamic.duia?host=[DOMAIN]&ip4=[IP]"
 
-# STRATO AG
-"strato.de"            "http://[USERNAME]:[PASSWORD]@dyndns.strato.com/nic/update?hostname=[DOMAIN]&myip=[IP]"
+"dy.fi"                        "http://[USERNAME]:[PASSWORD]@www.dy.fi/nic/update?hostname=[DOMAIN]"   "good|nochg"
 
-# Variomedia AG
-"variomedia.de"        "http://[USERNAME]:[PASSWORD]@dyndns.variomedia.de/nic/update?hostname=[DOMAIN]&myip=[IP]"      "good|nochg"
+"dyndns.it"            "http://[USERNAME]:[PASSWORD]@update.dyndns.it/nic/update?system=dyndns&hostname=[DOMAIN]&myip=[IP]"    "good|nochg"
 
-# DtDNS
-"dtdns.com"    "http://www.dtdns.com/api/autodns.cfm?id=[DOMAIN]&pw=[PASSWORD]&ip=[IP]"
+"dyn.com"              "http://[USERNAME]:[PASSWORD]@members.dyndns.org/nic/update?hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
+"dyndns.org"           "http://[USERNAME]:[PASSWORD]@members.dyndns.org/nic/update?hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
+
+"dyndnss.net"          "http://www.dyndnss.net/?user=[USERNAME]&pass=[PASSWORD]&domain=[DOMAIN]&updater=other"
+
+"dynsip.org"           "http://[USERNAME]:[PASSWORD]@dynsip.org/nic/update?hostname=[DOMAIN]&myip=[IP]"
 
-# dy.fi Dynamic DNS for finnish users (IP autodetected by provider)
-"dy.fi"                "http://[USERNAME]:[PASSWORD]@www.dy.fi/nic/update?hostname=[DOMAIN]"   "good|nochg"
+"dyns.net"             "http://www.dyns.net/postscript011.php?username=[USERNAME]&password=[PASSWORD]&host=[DOMAIN]&ip=[IP]"   "200"
 
-# duckdns.org
-"duckdns.org"  "http://www.duckdns.org/update?domains=[USERNAME]&token=[PASSWORD]&ip=[IP]"     "OK"
+"dynu.com"             "http://api.dynu.com/nic/update?hostname=[DOMAIN]&myip=[IP]&username=[USERNAME]&password=[PASSWORD]"
 
-# zzzz.io Free Dynamic DNS
-"zzzz.io"      "http://zzzz.io/api/v1/update/[DOMAIN]/?token=[PASSWORD]&ip=[IP]"       "Updated|No change"
+"dynv6.com"            "http://dynv6.com/api/update?hostname=[DOMAIN]&token=[PASSWORD]&ipv4=[IP]"      "updated"
 
-# dynu.com
-"dynu.com"  "http://api.dynu.com/nic/update?hostname=[DOMAIN]&myip=[IP]&username=[USERNAME]&password=[PASSWORD]"
+"easydns.com"          "http://[USERNAME]:[PASSWORD]@api.cp.easydns.com/dyn/generic.php?hostname=[DOMAIN]&myip=[IP]"   "NOERROR"
 
-# nubem.com
-"nubem.com"    "http://[USERNAME]:[PASSWORD]@nubem.com/nic/update?hostname=[DOMAIN]&myip=[IP]"
+"editdns.net"          "http://dyndns-free.editdns.net/api/dynLinux.php?p=[PASSWORD]&r=[DOMAIN]"
 
-# nettica.com
-"nettica.com"  "http://www.nettica.com/Domain/Update.aspx?U=[USERNAME]&PC=[PASSWORD]&FQDN=[DOMAIN]&N=[IP]"
+"goip.de"              "http://www.goip.de/setip?username=[USERNAME]&password=[PASSWORD]&subdomain=[DOMAIN]&ip4=[IP]"
 
-# zerigo.com
-"zerigo.com"   "http://update.zerigo.com/dynamic?host=[DOMAIN]&ip=[IP]&user=[USERNAME]&password=[PASSWORD]"
+"google.com"           "http://[USERNAME]:[PASSWORD]@domains.google.com/nic/update?hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
 
-# regfish.de
-"regfish.de"   "http://dyndns.regfish.de/?fqdn=[DOMAIN]&forcehost=1&authtype=secure&token=[PASSWORD]&ipv4=[IP]"        "success|100|101"
+"he.net"               "http://[DOMAIN]:[PASSWORD]@dyn.dns.he.net/nic/update?hostname=[DOMAIN]&myip=[IP]"      "good|nochg"
 
-# nsupdate.info - a free service - supports https
-"nsupdate.info"        "http://[USERNAME]:[PASSWORD]@ipv4.nsupdate.info/nic/update?hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
+"joker.com"            "http://svc.joker.com/nic/update?username=[USERNAME]&password=[PASSWORD]&myip=[IP]&hostname=[DOMAIN]"   "good|nochg"
 
-# dyndnss.net
-"dyndnss.net"  "http://www.dyndnss.net/?user=[USERNAME]&pass=[PASSWORD]&domain=[DOMAIN]&updater=other"
+"loopia.com"           "http://[USERNAME]:[PASSWORD]@dns.loopia.se/XDynDNSServer/XDynDNS.php?system=custom&hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
 
-# goip.de
-"goip.de"      "http://www.goip.de/setip?username=[USERNAME]&password=[PASSWORD]&subdomain=[DOMAIN]&ip4=[IP]"
+"loopia.se"            "http://[USERNAME]:[PASSWORD]@dns.loopia.se/XDynDNSServer/XDynDNS.php?system=custom&hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
+
+"mydns.jp"             "http://www.mydns.jp/directip.html?MID=[USERNAME]&PWD=[PASSWORD]&IPV4ADDR=[IP]"
 
-# myonlineportal.net
 "myonlineportal.net"   "http://[USERNAME]:[PASSWORD]@myonlineportal.net/updateddns?hostname=[DOMAIN]&ip=[IP]"  "good|nochg"
 
-# dyns.net
-"dyns.net"     "http://www.dyns.net/postscript011.php?username=[USERNAME]&password=[PASSWORD]&host=[DOMAIN]&ip=[IP]"   "200"
+"mythic-beasts.com"    "http://dnsapi4.mythic-beasts.com/?domain=[USERNAME]&password=[PASSWORD]&command=REPLACE%20[DOMAIN]%2060%20A%20DYNAMIC_IP&origin=."
+
+"namecheap.com"                "http://dynamicdns.park-your-domain.com/update?host=[USERNAME]&domain=[DOMAIN]&password=[PASSWORD]&ip=[IP]"
 
-# dnshome.de
-"dnshome.de"   "http://[USERNAME]:[PASSWORD]@www.dnshome.de/dyndns.php?hostname=[DOMAIN]&ip=[IP]"
+"nettica.com"          "http://www.nettica.com/Domain/Update.aspx?U=[USERNAME]&PC=[PASSWORD]&FQDN=[DOMAIN]&N=[IP]"
 
-# core-networks.de
-"core-networks.de"     "http://[USERNAME]:[PASSWORD]@dyndns.core-networks.de/?hostname=[DOMAIN]&myip=[IP]&keepipv6=1"  "good"
+"no-ip.pl"             "http://[USERNAME]:[PASSWORD]@update.no-ip.pl/?hostname=[DOMAIN]"
+
+"nsupdate.info"                "http://[USERNAME]:[PASSWORD]@ipv4.nsupdate.info/nic/update?hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
+
+"nubem.com"            "http://[USERNAME]:[PASSWORD]@nubem.com/nic/update?hostname=[DOMAIN]&myip=[IP]"
+
+"opendns.com"          "http://[USERNAME]:[PASSWORD]@updates.opendns.com/nic/update?hostname=[DOMAIN]&myip=[IP]"       "good|nochg"
+
+"oray.com"             "http://[USERNAME]:[PASSWORD]@ddns.oray.com/ph/update?hostname=[DOMAIN]&myip=[IP]"
+
+"ovh.com"              "http://[USERNAME]:[PASSWORD]@www.ovh.com/nic/update?system=dyndns&hostname=[DOMAIN]&myip=[IP]" "good|nochg"
+
+"regfish.de"           "http://dyndns.regfish.de/?fqdn=[DOMAIN]&forcehost=1&authtype=secure&token=[PASSWORD]&ipv4=[IP]"        "success|100|101"
+
+"schokokeks.org"       "http://[USERNAME]:[PASSWORD]@dyndns.schokokeks.org/nic/update?myip=[IP]"       "good|nochg"
+
+"selfhost.de"          "http://carol.selfhost.de/update?username=[USERNAME]&password=[PASSWORD]&myip=[IP]&hostname=1"  "good|nochg|200|204"
+
+"sitelutions.com"      "http://www.sitelutions.com/dnsup?user=[USERNAME]&pass=[PASSWORD]&id=[DOMAIN]&ip=[IP]"  "success"
+
+"spdyn.de"             "http://[USERNAME]:[PASSWORD]@update.spdyn.de/nic/update?hostname=[DOMAIN]&myip=[IP]"   "good|nochg"
+
+"strato.com"           "http://[USERNAME]:[PASSWORD]@dyndns.strato.com/nic/update?hostname=[DOMAIN]&myip=[IP]" "good|nochg"
+
+"system-ns.com"                "http://system-ns.com/api?type=dynamic&command=set&domain=[DOMAIN]&token=[PASSWORD]&ip=[IP]"    "0"
+
+"thatip.com"           "http://update.dnsmax.com/update/?username=[USERNAME]&password=[PASSWORD]&resellerid=2&clientname=openwrt&clientversion=8.09&protocolversion=2.0&updatehostname=[DOMAIN]&ip=[IP]"
+
+"twodns.de"            "http://[USERNAME]:[PASSWORD]@update.twodns.de/update?hostname=[DOMAIN]&ip=[IP]"
+
+"udmedia.de"           "http://[USERNAME]:[PASSWORD]@www.udmedia.de/nic/update?myip=[IP]"
+
+"variomedia.de"        "http://[USERNAME]:[PASSWORD]@dyndns.variomedia.de/nic/update?hostname=[DOMAIN]&myip=[IP]"      "good|nochg"
+
+"xlhost.de"            "http://[USERNAME]:[PASSWORD]@nsupdate.xlhost.de/nic/update?hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
+
+"zerigo.com"           "http://update.zerigo.com/dynamic?user=[USERNAME]&password=[PASSWORD]&host=[DOMAIN]&ip=[IP]"    "ok"
+
+"zoneedit.com"         "http://[USERNAME]:[PASSWORD]@dynamic.zoneedit.com/auth/dynamic.html?host=[DOMAIN]&dnsto=[IP]"
+
+"zzzz.io"              "http://zzzz.io/api/v1/update/[DOMAIN]/?token=[PASSWORD]&ip=[IP]"       "Updated|No change"
 
-# do.de
-"do.de"        "http://ddns.do.de/?myip=[IP]&hostname=[DOMAIN]&username=[USERNAME]&password=[PASSWORD]" "good|nochg"
index 2201295d799a5d1d5dcaa5f3f358b89d5b9d3b97..992a290ca2243ad613d246347a7a8296ad1782d6 100644 (file)
 # "answer"     words inside providers answer string; use "|" to combine "or"
 #
 # 66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
+#
+# cloudflare.com       !!! Please install additional package "ddns-scripts_cloudflare"
+# no-ip.com / noip.com !!! Please install additional package "ddns-scripts_no-ip_com"
+
+"afraid.org"           "http://freedns.afraid.org/dynamic/update.php?[PASSWORD]&address=[IP]"
 
-# IPv6 @ Securepoint Dynamic-DNS-Service
-"spdns.de"     "http://[USERNAME]:[PASSWORD]@update.spdyn.de/nic/update?hostname=[DOMAIN]&myip=[IP]"   "good|nochg"
-"spdyn.de"     "http://[USERNAME]:[PASSWORD]@update.spdyn.de/nic/update?hostname=[DOMAIN]&myip=[IP]"   "good|nochg"
+"all-inkl.com"         "http://[USERNAME]:[PASSWORD]@dyndns.kasserver.com/?myip=[IP]"
 
-# IPv6 @ Hurricane Electric Dynamic DNS
-"he.net"       "http://[DOMAIN]:[PASSWORD]@dyn.dns.he.net/nic/update?hostname=[DOMAIN]&myip=[IP]"      "good|nochg"
+"core-networks.de"     "http://[USERNAME]:[PASSWORD]@dyndns.core-networks.de/?hostname=[DOMAIN]&myip=[IP]&keepipv4=1"  "good"
 
-# IPv6 @ MyDNS.JP
-"mydns.jp"     "http://www.mydns.jp/directip.html?MID=[USERNAME]&PWD=[PASSWORD]&IPV6ADDR=[IP]"
+# "ddnss.de"           "http://[USERNAME]:[PASSWORD]@ip6.ddnss.de/upd.php?host=[DOMAIN]&ip6=[IP]"      "good|nochg"
+"ddnss.de"             "http://ip6.ddnss.de/upd.php?user=[USERNAME]&pwd=[PASSWORD]&host=[DOMAIN]&ip6=[IP]"     "good|nochg"
 
-# IPv6 @ no-ip.pl nothing to do with no-ip.com (domain registered to www.domeny.tv) (IP autodetected by provider)
-"no-ip.pl"     "http://[USERNAME]:[PASSWORD]@update.no-ip.pl/?hostname=[DOMAIN]"
+"desec.io"             "http://[USERNAME]:[PASSWORD]@update.dedyn.io/?hostname=[DOMAIN]&myipv6=[IP]"   "good|nochg"
 
-# IPv6 @ freedns.afraid.org
-"freedns.afraid.org"   "http://freedns.afraid.org/dynamic/update.php?[PASSWORD]&address=[IP]"
+"dhis.org"             "http://[USERNAME]:[PASSWORD]@is.dhis.org/"
 
-# IPv6 @ LoopiaDNS
-"loopia.se"    "http://[USERNAME]:[PASSWORD]@dns.loopia.se/XDynDNSServer/XDynDNS.php?system=custom&hostname=[DOMAIN]&myip=[IP]"
+"dnshome.de"           "http://[USERNAME]:[PASSWORD]@www.dnshome.de/dyndns.php?hostname=[DOMAIN]&ip6=[IP]"
 
-# Variomedia AG
-"variomedia.de"                "http://[USERNAME]:[PASSWORD]@dyndns.variomedia.de/nic/update?hostname=[DOMAIN]&myip=[IP]"      "good|nochg"
+"do.de"                        "http://ddns.do.de/?myip=[IP]&hostname=[DOMAIN]&username=[USERNAME]&password=[PASSWORD]"        "good|nochg"
 
-# IPv6 @ Dyn.com
+"duckdns.org"          "http://www.duckdns.org/update?domains=[DOMAIN]&token=[PASSWORD]&ipv6=[IP]"     "OK"
+
+"duiadns.net"          "http://[USERNAME]:[PASSWORD]@ipv6.duia.ro/dynamic.duia?host=[DOMAIN]&ip6=[IP]"
+
+"dyn.com"              "http://[USERNAME]:[PASSWORD]@members.dyndns.org/nic/update?hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
 "dyndns.org"           "http://[USERNAME]:[PASSWORD]@members.dyndns.org/nic/update?hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
 
-# duckdns.org
-"duckdns.org"  "http://www.duckdns.org/update?domains=[DOMAIN]&token=[PASSWORD]&ipv6=[IP]"     "OK"
+"dynv6.com"            "http://dynv6.com/api/update?hostname=[DOMAIN]&token=[PASSWORD]&ipv6=[IP]"      "updated"
 
-# IPv6 @ zzzz.io Free Dynamic DNS
-"zzzz.io"      "http://zzzz.io/api/v1/update/[DOMAIN]/?token=[PASSWORD]&type=aaaa&ip=[IP]"     "Updated|No change"
+"goip.de"              "http://www.goip.de/setip?username=[USERNAME]&password=[PASSWORD]&subdomain=[DOMAIN]&ip6=[IP]"
 
-# IPv6 @ zerigo.com
-"zerigo.com"   "http://update.zerigo.com/dynamic?host=[DOMAIN]&ip=[IP]&user=[USERNAME]&password=[PASSWORD]"
+"google.com"           "http://[USERNAME]:[PASSWORD]@domains.google.com/nic/update?hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
 
-# IPv6 @ regfish.de
-"regfish.de"   "http://dyndns.regfish.de/?fqdn=[DOMAIN]&forcehost=1&authtype=secure&token=[PASSWORD]&ipv6=[IP]"        "success|100|101"
+"he.net"               "http://[DOMAIN]:[PASSWORD]@dyn.dns.he.net/nic/update?hostname=[DOMAIN]&myip=[IP]"      "good|nochg"
 
-# Mythic Beasts (https://www.mythic-beasts.com) Dynamic DNS
-"mythic-beasts.com"    "http://dnsapi6.mythic-beasts.com/?domain=[USERNAME]&password=[PASSWORD]&command=REPLACE%20[DOMAIN]%2060%20AAAA%20DYNAMIC_IP&origin=."
+"loopia.com"           "http://[USERNAME]:[PASSWORD]@dns.loopia.se/XDynDNSServer/XDynDNS.php?system=custom&hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
 
-# nsupdate.info - a free service - supports https
-"nsupdate.info"        "http://[USERNAME]:[PASSWORD]@ipv6.nsupdate.info/nic/update?hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
+"loopia.se"            "http://[USERNAME]:[PASSWORD]@dns.loopia.se/XDynDNSServer/XDynDNS.php?system=custom&hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
 
-# goip.de
-"goip.de"      "http://www.goip.de/setip?username=[USERNAME]&password=[PASSWORD]&subdomain=[DOMAIN]&ip6=[IP]"
+"mydns.jp"             "http://www.mydns.jp/directip.html?MID=[USERNAME]&PWD=[PASSWORD]&IPV6ADDR=[IP]"
 
-# myonlineportal.net
 "myonlineportal.net"   "http://[USERNAME]:[PASSWORD]@myonlineportal.net/updateddns?hostname=[DOMAIN]&ip6=[IP]" "good|nochg"
 
-# dnshome.de
-"dnshome.de"   "http://[USERNAME]:[PASSWORD]@www.dnshome.de/dyndns.php?hostname=[DOMAIN]&ip6=[IP]"
+"mythic-beasts.com"    "http://dnsapi6.mythic-beasts.com/?domain=[USERNAME]&password=[PASSWORD]&command=REPLACE%20[DOMAIN]%2060%20AAAA%20DYNAMIC_IP&origin=."
+
+"no-ip.pl"             "http://[USERNAME]:[PASSWORD]@update.no-ip.pl/?hostname=[DOMAIN]"
 
-# core-networks.de
-"core-networks.de"     "http://[USERNAME]:[PASSWORD]@dyndns.core-networks.de/?hostname=[DOMAIN]&myip=[IP]&keepipv4=1"  "good"
+"nsupdate.info"                "http://[USERNAME]:[PASSWORD]@ipv6.nsupdate.info/nic/update?hostname=[DOMAIN]&myip=[IP]"        "good|nochg"
+
+"regfish.de"           "http://dyndns.regfish.de/?fqdn=[DOMAIN]&forcehost=1&authtype=secure&token=[PASSWORD]&ipv6=[IP]"        "success|100|101"
+
+"spdyn.de"             "http://[USERNAME]:[PASSWORD]@update.spdyn.de/nic/update?hostname=[DOMAIN]&myip=[IP]"   "good|nochg"
+
+"udmedia.de"           "http://[USERNAME]:[PASSWORD]@www.udmedia.de/nic/update?myip=[IP]"
+
+"variomedia.de"                "http://[USERNAME]:[PASSWORD]@dyndns.variomedia.de/nic/update?hostname=[DOMAIN]&myip=[IP]"      "good|nochg"
+
+"zerigo.com"           "http://update.zerigo.com/dynamic?user=[USERNAME]&password=[PASSWORD]&host=[DOMAIN]&ip=[IP]"    "ok"
 
-# duiadns.net - free dynamic DNS
-"duiadns.net"  "http://[USERNAME]:[PASSWORD]@ipv6.duia.ro/dynamic.duia?host=[DOMAIN]&ip6=[IP]"
+"zzzz.io"              "http://zzzz.io/api/v1/update/[DOMAIN]/?token=[PASSWORD]&type=aaaa&ip=[IP]"     "Updated|No change"
 
-# do.de
-"do.de" "http://ddns.do.de/?myip=[IP]&hostname=[DOMAIN]&username=[USERNAME]&password=[PASSWORD]" "good|nochg"
index 1af94041e77b5b2317ac1d8bd60ef2a11795d4a6..5d952cb2c588b0d33efb4d5e7af0f1067d396096 100644 (file)
 #
 # variable __IP already defined with the ip-address to use for update
 #
-local __TTL=600                #.preset DNS TTL (in seconds)
-local __RRTYPE __PW __TCP
-
-[ -x /usr/bin/nsupdate ] || write_log 14 "'nsupdate' not installed or not executable !"
+__TTL=600              #.preset DNS TTL (in seconds)
+__RRTYPE __PW __TCP
+__PROG=$(which nsupdate)                       # BIND nsupdate ?
+[ -z "$__PROG" ] && __PROG=$(which knsupdate)  # Knot nsupdate ?
 
+[ -z "$__PROG" ]     && write_log 14 "'nsupdate' or 'knsupdate' not installed !"
 [ -z "$username" ]   && write_log 14 "Service section not configured correctly! Missing 'username'"
 [ -z "$password" ]   && write_log 14 "Service section not configured correctly! Missing 'password'"
 [ -z "$dns_server" ] && write_log 14 "Service section not configured correctly! Missing 'dns_server'"
@@ -35,12 +36,13 @@ update del $domain $__RRTYPE
 update add $domain $__TTL $__RRTYPE $__IP
 show
 send
+answer
 quit
 EOF
 
-/usr/bin/nsupdate -d $__TCP $DATFILE >$ERRFILE 2>&1
+$__PROG -d $__TCP $DATFILE >$ERRFILE 2>&1
 
 # nsupdate always return success
-write_log 7 "nsupdate reports:\n$(cat $ERRFILE)"
+write_log 7 "(k)nsupdate reports:\n$(cat $ERRFILE)"
 
 return 0
\ No newline at end of file