ddns-scripts: Update to version 2.2.0-1

modified source directory structure
  - files for production files
  - samples for sample files (not installed in final build)
modified Makefile
  - separate options for additional provider scripts
  - remove comments and empty lines from final build
add IPv4 100.64/10 (RFC 6598) and 169.254/16 (RFC 5735) to the range of default blocked IP's.
new option "bind_network" to force GNU Wget or cURL to use specific network/interface for communication
new "domains.google.com" as IPv4 DDNS provider #822

Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
This commit is contained in:
Christian Schoenebeck
2015-02-05 21:33:02 +01:00
parent 8f8251f374
commit 5b26382273
15 changed files with 378 additions and 76 deletions
@@ -2,12 +2,12 @@
# /usr/lib/ddns/dynamic_dns_functions.sh
#
# Original written by Eric Paul Bishop, January 2008
# Distributed under the terms of the GNU General Public License (GPL) version 2.0
#.Distributed under the terms of the GNU General Public License (GPL) version 2.0
# (Loosely) based on the script on the one posted by exobyte in the forums here:
# http://forum.openwrt.org/viewtopic.php?id=14040
#
# extended and partial rewritten in August 2014
# by Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
# extended and partial rewritten in August 2014 by
#.Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
# to support:
# - IPv6 DDNS services
# - setting DNS Server to retrieve current IP including TCP transport
@@ -235,6 +235,7 @@ write_log() {
fi
[ $LUCI_HELPER ] && return # nothing else todo when running LuCI helper script
[ $__LEVEL -eq 7 ] && return # no syslog for debug messages
__CMD=$(echo -e "$__CMD" | tr -d '\n' | tr '\t' ' ') # remove \n \t chars
[ $__EXIT -eq 1 ] && {
$__CMD # force syslog before exit
exit 1
@@ -342,7 +343,7 @@ get_seconds() {
}
timeout() {
# copied from http://www.ict.griffith.edu.au/anthony/software/timeout.sh
#.copied from http://www.ict.griffith.edu.au/anthony/software/timeout.sh
# only did the following changes
# - commented out "#!/bin/bash" and usage section
# - replace exit by return for usage as function
@@ -357,8 +358,6 @@ timeout() {
# Example use
# timeout 5 countdown
#
###
#
# Based on notes in my "Shell Script Hints", section "Command Timeout"
# http://www.ict.griffith.edu.au/~anthony/info/shell/script.hints
#
@@ -369,9 +368,7 @@ timeout() {
# It took years of occasional trials, errors and testing to get a pure bash
# timeout command working as well as this does.
#
###
#
# Anthony Thyssen 6 April 2011
#.Anthony Thyssen 6 April 2011
#
# PROGNAME=$(type $0 | awk '{print $3}') # search for executable on path
# PROGDIR=$(dirname $PROGNAME) # extract directory of program
@@ -638,6 +635,16 @@ do_transfer() {
# lets prefer GNU Wget because it does all for us - IPv4/IPv6/HTTPS/PROXY/force IP version
if /usr/bin/wget --version 2>&1 | grep "\+ssl" >/dev/null 2>&1 ; then
__PROG="/usr/bin/wget -nv -t 1 -O $DATFILE -o $ERRFILE" # non_verbose no_retry outfile errfile
# force network/ip to use for communication
if [ -n "$bind_network" ]; then
local __BINDIP
# set correct program to detect IP
[ $use_ipv6 -eq 0 ] && __RUNPROG="network_get_ipaddr" || __RUNPROG="network_get_ipaddr6"
eval "$__RUNPROG __BINDIP $bind_network" || \
write_log 13 "Can not detect local IP using '$__RUNPROG $bind_network' - Error: '$?'"
write_log 7 "Force communication via IP '$__BINDIP'"
__PROG="$__PROG --bind-address=$__BINDIP"
fi
# force ip version to use
if [ $force_ipversion -eq 1 ]; then
[ $use_ipv6 -eq 0 ] && __PROG="$__PROG -4" || __PROG="$__PROG -6" # force IPv4/IPv6
@@ -664,6 +671,14 @@ do_transfer() {
# libcurl might be compiled without Proxy Support (default in trunk)
elif [ -x /usr/bin/curl ]; then
__PROG="/usr/bin/curl -RsS -o $DATFILE --stderr $ERRFILE"
# force network/interface-device to use for communication
if [ -n "$bind_network" ]; then
local __DEVICE
network_get_physdev __DEVICE $bind_network || \
write_log 13 "Can not detect local device using 'network_get_physdev $bind_network' - Error: '$?'"
write_log 7 "Force communication via device '$__DEVICE'"
__PROG="$__PROG --interface $__DEVICE"
fi
# force ip version to use
if [ $force_ipversion -eq 1 ]; then
[ $use_ipv6 -eq 0 ] && __PROG="$__PROG -4" || __PROG="$__PROG -6" # force IPv4/IPv6
@@ -697,9 +712,12 @@ do_transfer() {
# busybox Wget (did not support neither IPv6 nor HTTPS)
elif [ -x /usr/bin/wget ]; then
__PROG="/usr/bin/wget -q -O $DATFILE"
# force network/ip not supported
[ -n "$__BINDIP" ] && \
write_log 14 "BusyBox Wget: FORCE binding to specific address not supported"
# force ip version not supported
[ $force_ipversion -eq 1 ] && \
write_log 14 "BusyBox Wget: can not force IP version to use"
write_log 14 "BusyBox Wget: Force connecting to IPv4 or IPv6 addresses not supported"
# https not supported
[ $use_https -eq 1 ] && \
write_log 14 "BusyBox Wget: no HTTPS support"
@@ -752,7 +770,7 @@ send_update() {
if [ $ALLOW_LOCAL_IP -eq 0 ]; then
# verify given IP / no private IPv4's / no IPv6 addr starting with fxxx of with ":"
[ $use_ipv6 -eq 0 ] && __IP=$(echo $1 | grep -v -E "(^0|^10\.|^127|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[0-1]\.|^192\.168)")
[ $use_ipv6 -eq 0 ] && __IP=$(echo $1 | grep -v -E "(^0|^10\.|^100\.6[4-9]\.|^100\.[7-9][0-9]\.|^100\.1[0-1][0-9]\.|^100\.12[0-7]\.|^127|^169\.254|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[0-1]\.|^192\.168)")
[ $use_ipv6 -eq 1 ] && __IP=$(echo $1 | grep "^[0-9a-eA-E]")
[ -z "$__IP" ] && write_log 14 "Private or invalid or no IP '$1' given! Please check your configuration"
else
@@ -788,7 +806,7 @@ get_local_ip () {
local __RUNPROG __DATA __URL __ERR
[ $# -ne 1 ] && write_log 12 "Error calling 'get_local_ip()' - wrong number of parameters"
write_log 7 "Detect local IP"
write_log 7 "Detect local IP on '$ip_source'"
while : ; do
case $ip_source in
@@ -796,8 +814,8 @@ get_local_ip () {
# set correct program
[ $use_ipv6 -eq 0 ] && __RUNPROG="network_get_ipaddr" \
|| __RUNPROG="network_get_ipaddr6"
write_log 7 "#> $__RUNPROG __DATA '$ip_network'"
eval "$__RUNPROG __DATA $ip_network" || write_log 3 "$__RUNPROG Error: '$?'"
eval "$__RUNPROG __DATA $ip_network" || \
write_log 13 "Can not detect local IP using $__RUNPROG '$ip_network' - Error: '$?'"
[ -n "$__DATA" ] && write_log 7 "Local IP '$__DATA' detected on network '$ip_network'"
;;
interface)
@@ -857,7 +875,7 @@ get_local_ip () {
[ $use_ipv6 -eq 0 ] \
&& __DATA=$(grep -m 1 -o "$IPV4_REGEX" $DATFILE) \
|| __DATA=$(grep -m 1 -o "$IPV6_REGEX" $DATFILE)
[ -n "$__DATA" ] && write_log 7 "Local IP '$__DATA' detected on web at '$__URL'"
[ -n "$__DATA" ] && write_log 7 "Local IP '$__DATA' detected on web at '$ip_url'"
;;
*)
write_log 12 "Error in 'get_local_ip()' - unhandled ip_source '$ip_source'"
@@ -1,8 +1,10 @@
#!/bin/sh
# /usr/lib/ddns/luci_dns_helper.sh
#
# Written in August 2014
# by Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
#.Distributed under the terms of the GNU General Public License (GPL) version 2.0
#
# Written in August 2014 by
#.Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
# This script is used by luci-app-ddns
# - getting registered IP
# - check if possible to get local IP
@@ -2,12 +2,12 @@
# /usr/lib/ddns/dynamic_dns_updater.sh
#
# Original written by Eric Paul Bishop, January 2008
# Distributed under the terms of the GNU General Public License (GPL) version 2.0
#.Distributed under the terms of the GNU General Public License (GPL) version 2.0
# (Loosely) based on the script on the one posted by exobyte in the forums here:
# http://forum.openwrt.org/viewtopic.php?id=14040
#
# extended and partial rewritten in August 2014
# by Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
# extended and partial rewritten in August 2014 by
#.Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
# to support:
# - IPv6 DDNS services
# - DNS Server to retrieve registered IP including TCP transport (Ticket 7820)
@@ -147,7 +147,7 @@ ERR_LAST=$? # save return code - equal 0 if SECTION_ID found
write_log 7 "************ ************** ************** **************"
write_log 5 "PID '$$' started at $(eval $DATE_PROG)"
write_log 7 "uci configuration:\n$(uci -q show ddns.$SECTION_ID | sort)"
write_log 7 "ddns version : $(opkg list-installed ddns-scripts | awk '{print $3}')"
write_log 7 "ddns version : $(opkg list-installed ddns-scripts | cut -d ' ' -f 3)"
case $VERBOSE_MODE in
0) write_log 7 "verbose mode : 0 - run normal, NO console output";;
1) write_log 7 "verbose mode : 1 - run normal, console mode";;
@@ -1,288 +0,0 @@
#
#
# Here you find a description on every parameter supported
# and used by ddns-scripts and corresponding LuCI application
#
# Inside your ddns configuration file (/etc/config/ddns)
# you might not find some of below described options.
# This is because you don't need to define options
# if using there defaults. The LuCI application will delete
# options that configured to there default values.
#
# If you have a working ddns configuration from old ddns-scripts (Version 1.x)
# everything will function the same with new scripts
# without any changes to the configuration.
#
# If you like to use this file for your configuration then
# use a copy, because the used software to modify the
# configuration files will throw away all empty lines
# and those starting with # (comments).
#
#####################################################################
# Global application settings
#
config ddns "global"
###########
# set date format to use for display date in logfiles
# and LuCI web application.
# For codes see man pages of date command.
# default: "%F %R" (ISO 8601 format)
# option date_format "%F %R"
###########
# set run directory to use for .pid and .update files
# there will be a separate file for every running service section
# default: "/var/run/ddns"
# option run_dir "/var/run/ddns"
###########
# set log directory to use for .log files
# there will be a separate file for every running service section
# default: "/var/log/ddns"
# option log_dir "/var/log/ddns"
###########
# set number of lines stored in .log file before auto truncated
# default: "250" lines
# option log_lines "250"
###########
# Whether to allow to send Private/Special IP's to the DDNS provider
# IPv4: 0.x, 10.x, 127.x, 172.16.x-172.31.x, 192.168.x
# IPv6: ::, Fxxx:
# default: "0" disabled
# option allow_local_ip "0"
#####################################################################
# DDNS service settings
#
# for each service you want to serve you need a separate configuration
# if you need IPv4 and IPv6 you need to setup 2 separate configurations
# with different names. (i.e. "myddns_ipv4" and "myddns_ipv6")
# do not use white-spaces or dashes "-" or "@" ":" "!" or
# other special characters inside name.
config service "myddns"
########### Basic settings ########################
###########
# enable/disable this service section
# default: "0" disabled
option enabled "0"
###########
# detecting/sending IPv4 or IPv6 address to the DDNS provider
# set to "1" if you want to use IPv6
# default: "0" use IPv4
option use_ipv6 "0"
###########
# defines the network as defined in /etc/config/network
# to be monitored for up/down events to start via hotplug
default: "wan" for IPv4
default: "wan6" for IPv6
option interface "wan"
###########
# Next you need to specify the name of the service you are
# connecting to "eg. dyndns.org". The format of the update
# urls for several different dynamic dns services is specified
# in the "/usr/lib/ddns/services" file for IPv4 and in
# "/usr/lib/ddns/service_ipv6" file. This list is hardly complete
# as there are many, many different dynamic dns services.
# If your service is on the list you can merely specify it with the
# "service_name" option. Otherwise you will need to determine
# the format of the url to update with. You can either add an
# entry to the "/usr/lib/ddns/services" or "services_ipv6" file
# or specify this with the "update_url" option.
# If your ddns provider doesn't work with ddns-scripts because
# there are additional parameters or other special thinks to be done,
# then you could write your own script to send updates to your ddns provider.
# Have a look into /usr/lib/ddns/update_sample.sh
# The script is specified in "update_script"
# Either set "service_name" or one of "update_url" and "update_script"
# default: none
option service_name "dyndns.org"
# sample:
# "http://[USERNAME]:[PASSWORD]@members.dyndns.org/nic/update?hostname=[DOMAIN]&myip=[IP]"
# option update_url ""
# sample:
# "/usr/lib/ddns/update_sample.sh"
# option update_script ""
###########
# You must specify your domain/host name, your username and your password
# as you get from you DDNS provider. Keep an eye on providers help pages.
#
# Your DNS name / replace [DOMAIN] in update_url
# default: none
option domain ""
# Username of your DDNS service account / replace [USERNAME] in update_url
# default: none
option username ""
# Password of your DDNS service account / replace [PASSWORD] in update_url
# default: none
option password ""
###########
# use HTTPS for secure communication with you DDNS provider
# personally found some providers having problems when not sending
# updates via HTTPS. You must not specify "https://" in update_url.
# It's modified by the scripts themselves
# Needs GNU Wget (with SSL support) or cURL to be installed.
# default: "0" do not use HTTPS
option use_https "0"
# if using HTTPS (see above) the transfer program tries to verify
# the providers server certificate. For verification there needs to be
# the counterpart on this machine. Specify the path or path/file where
# the transfer program can find them. (might need package CA-certificates)
# if you don't want to verify servers certificate (insecure) you should
# this parameter to "IGNORE" (in capital letters)
# default: (none) path where CA-certificate package is installed
option cacert "/etc/ssl/certs"
###########
# for logging and control if everything work fine you can get information inside
# system log . Critical Errors are always send to system log.
# You can define which information you like to log
# 1 == info, notice, warning, errors
# 2 == notice, warning, errors
# 3 == warning, errors
# 4 == errors
# default: "0" off
option use_syslog "0"
###########
# for logging and control if everything work fine you can get information inside
# log file. You find the file per default in /var/log/ddns/[sectionname].log
# The path can be modified for all log files in ddns.global section (see above)
# default: "1" on
option use_logfile "1"
########### Advanced settings #####################
###########
# you need to specify how ddns-scripts should detect you current local ip.
# the ip_source could be set to "network", "web", "interface" or "script"
# the parameters below specifying the additional information needed for
# the corresponding ip_spource configuration
# default: "network"
# ip_source "network" additional uses option ip_network and detects the
# current local ip on network as defined in /etc/config/network
# default: "wan" using IPv4
# default: "wan6" using IPv6
option ip_source "network"
option ip_network "wan"
# ip_source "web" additional uses option ip_url and detects the current
# local ip from special web sides that response with the ip address of
# calling host. If you are behind a firewall/NAT this is the best option
# since none of the local networks or interfaces will have the external ip.
# default: "http://checkip.dyndns.com" using IPv4
# default: "http://checkipv6.dyndns.com" using IPv6
# option ip_source "web"
# option ip_url "http://checkip.dyndns.com"
# ip_source "interface" additional uses option ip_interface
# ip_source "interface" uses one of the locally installed physical interfaces
# to detect independent from network they configured to.
# default: none
# option ip_source "interface"
# option ip_interface "eth1"
# ip_source "script" additional uses option ip_script
# it's useful if you want to write your own script to detect the
# current local ip. put full path into ip_script option.
# The script must be executable.
# default: none
# option ip_source "script"
# option ip_script ""
###########
# force_ipversion option will set the "-4" respectively "-6" parameter
# on command line of transfer and DNS lookup program.
# So the whole communication uses the selected IP version between both ends.
# needs GNU Wget or cURL installed for transfer and
# BIND's host for DNS lookup.
# default: "0" disabled
option force_ipversion "0"
###########
# Normally the current (in the internet) registered ip is detected using the
# local defined name lookup policies (i.e. /etc/resolve.conf etc.)
# Specify here a DNS server to use instead of the defaults.
# you can use hostname or ip address
# i.e. "google-public-dns-a.google.com"
# default: none
# option dns_server "google-public-dns-a.google.com"
# By default every DNS call is made via UDP protocol
# Some internet provider offer modems that cache UDP DNS requests.
# They also redirect calls to external servers to local.
# To force the usage of TCP for DNS requests enable this option
# Needs BIND's host program be installed
# default: "0" disabled
# option force_dnstcp "0"
###########
# If a Proxy is need to access HTTP/HTTPS pages on the WEB
# it can be configured here also for sending updates to the
# DDNS provider. If you configured use_https='1' above, you
# need to setup your HTTPS proxy here, otherwise your
# HTTP proxy. !!! You should not detect your current IP
# ip_source='web' (see above) because this request is also
# send via the configured proxy !!!
# Syntax: [user:password@]proxy:port !port is required !
# IPv6 address must be in squared brackets "[...]"
# default: none
# option proxy ''
########### Timer settings ########################
###########
# defines the time interval to check if local IP has changed
# After the first start and first update send, the system will
# wait this time before verify if update was successful send.
# !!! checks below 5 minutes make no sense because the Internet
# needs about 5-10 minutes to sync an IP-change to all DNS servers !!!
# accepted unit entrys: 'seconds' 'minutes' 'hours'
# minimum 5 minutes == 300 seconds
# default 10 minutes
option check_interval '10'
option check_unit 'minutes'
###########
# force to send an update to service provider, if no change was detected.
# consult DDNS providers documentation if your DDNS entry might timeout.
# accepted unit entrys: 'minutes' 'hours' 'days'
# minimum needs to be greater or equal check interval (see above)
# A special setting of '0' is allowed, which forces the script to run once.
# It sends an update, verify if update was accepted by DNS
# (retry if not) and finish. Useful if you want to start by your own (i.e. cron)
# default 3 days == 72 hours
option force_interval '72'
option force_unit 'hours'
###########
# if error happen on detecting, sending or updating the
# script will retry the relevant action for retry_count times
# before stopping script execution.
# default: 5
option retry_count '5'
###########
# if error happen on detecting, sending or updating the
# script will retry the relevant action.
# here you define the time to wait before retry is started
# accepted unit entrys: 'seconds' 'minutes'
# default: 60 seconds
option retry_interval '60'
option retry_unit 'seconds'
@@ -29,11 +29,6 @@
"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]"
# noip is an alias of no-ip, so allow both names for the same service
# use provider specific update script
"no-ip.com" "update_no-ip.sh"
"noip.com" "update_no-ip.sh"
# 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]"
@@ -88,11 +83,11 @@
# LoopiaDNS
"loopia.se" "http://[USERNAME]:[PASSWORD]@dns.loopia.se/XDynDNSServer/XDynDNS.php?system=custom&hostname=[DOMAIN]&myip=[IP]"
# Cloudflare
"cloudflare.com" "update_cloudflare.sh"
# SelfHost.de
"selfhost.de" "http://carol.selfhost.de/update?username=[USERNAME]&password=[PASSWORD]&myip=[IP]&hostname=1"
# 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]"
# domains.google.com non free service - require HTTPS communication
"domains.google.com" "https://[USERNAME]:[PASSWORD]@domains.google.com/nic/update?hostname=[DOMAIN]&myip=[IP]"
@@ -33,9 +33,6 @@
# IPv6 @ MyDNS.JP
"mydns.jp" "http://www.mydns.jp/directip.html?MID=[USERNAME]&PWD=[PASSWORD]&IPV6ADDR=[IP]"
# IPv6 @ Cloudflare
"cloudflare.com" "update_cloudflare.sh"
# 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]"
@@ -1149,7 +1149,7 @@ tt.im
tv.im
// in : http://en.wikipedia.org/wiki/.in
// see also: http://www.inregistry.in/policies/
// see also: https://registry.in/Policies
// Please note, that nic.in is not an offical eTLD, but used by most
// government institutions.
in
@@ -7081,7 +7081,7 @@ xxx
*.zw
// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2014-12-22T18:02:07Z
// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2015-01-27T00:02:07Z
// abb : 2014-10-24 ABB Ltd
abb
@@ -7104,6 +7104,9 @@ accountant
// accountants : 2014-03-20 Knob Town, LLC
accountants
// aco : 2015-01-08 ACO Severin Ahlmann GmbH & Co. KG
aco
// active : 2014-05-01 The Active Network, Inc
active
@@ -7134,6 +7137,12 @@ airforce
// airtel : 2014-10-24 Bharti Airtel Limited
airtel
// alibaba : 2015-01-15 Alibaba Group Holding Limited
alibaba
// alipay : 2015-01-15 Alibaba Group Holding Limited
alipay
// allfinanz : 2014-07-03 Allfinanz Deutsche Vermögensberatung Aktiengesellschaft
allfinanz
@@ -7149,6 +7158,9 @@ analytics
// android : 2014-08-07 Charleston Road Registry Inc.
android
// anquan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
anquan
// apartments : 2014-12-11 June Maple, LLC
apartments
@@ -7188,12 +7200,18 @@ auto
// autos : 2014-01-09 DERAutos, LLC
autos
// avianca : 2015-01-08 Aerovias del Continente Americano S.A. Avianca
avianca
// axa : 2013-12-19 AXA SA
axa
// azure : 2014-12-18 Microsoft Corporation
azure
// baidu : 2015-01-08 Baidu, Inc.
baidu
// band : 2014-06-12
band
@@ -7299,6 +7317,9 @@ bond
// boo : 2014-01-30 Charleston Road Registry Inc.
boo
// boots : 2015-01-08 THE BOOTS COMPANY PLC
boots
// bot : 2014-12-18 Amazon EU S.à r.l.
bot
@@ -7311,6 +7332,9 @@ bradesco
// bridgestone : 2014-12-18 Bridgestone Corporation
bridgestone
// broadway : 2014-12-22 Celebrate Broadway, Inc.
broadway
// broker : 2014-12-11 IG Group Holdings PLC
broker
@@ -7365,6 +7389,9 @@ capetown
// capital : 2014-03-06 Delta Mill, LLC
capital
// car : 2015-01-22 Charleston Road Registry Inc.
car
// caravan : 2013-12-12 Caravan International, Inc.
caravan
@@ -7443,6 +7470,9 @@ church
// circle : 2014-12-18 Amazon EU S.à r.l.
circle
// cisco : 2014-12-22 Cisco Technology, Inc.
cisco
// citic : 2014-01-09 CITIC Group Corporation
citic
@@ -7497,6 +7527,9 @@ company
// computer : 2013-10-24 Pine Mill, LLC
computer
// comsec : 2015-01-08 VeriSign, Inc.
comsec
// condos : 2013-12-05 Pine House, LLC
condos
@@ -7506,6 +7539,9 @@ construction
// consulting : 2013-12-05
consulting
// contact : 2015-01-08 Top Level Spectrum, Inc.
contact
// contractors : 2013-09-10 Magic Woods, LLC
contractors
@@ -7530,6 +7566,9 @@ credit
// creditcard : 2014-03-20 Binky Frostbite, LLC
creditcard
// creditunion : 2015-01-22 CUNA Performance Resources, LLC
creditunion
// cricket : 2014-10-09 dot Cricket Limited
cricket
@@ -7551,6 +7590,9 @@ cuisinella
// cymru : 2014-05-08 Nominet UK
cymru
// cyou : 2015-01-22 Beijing Gamease Age Digital Technology Co., Ltd.
cyou
// dabur : 2014-02-06 Dabur India Limited
dabur
@@ -7575,6 +7617,9 @@ day
// dclk : 2014-11-20 Charleston Road Registry Inc.
dclk
// dealer : 2014-12-22 Dealer Dot Com, Inc.
dealer
// deals : 2014-05-22 Sand Sunset, LLC
deals
@@ -7644,6 +7689,9 @@ doosan
// download : 2014-11-20 dot Support Limited
download
// dubai : 2015-01-01 Dubai Smart Government Department
dubai
// durban : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry
durban
@@ -7749,6 +7797,9 @@ feedback
// ferrero : 2014-12-18 Ferrero Trading Lux S.A.
ferrero
// film : 2015-01-08 Motion Picture Domain Registry Pty Ltd
film
// final : 2014-10-16 Núcleo de Informação e Coordenação do Ponto BR - NIC.br
final
@@ -7881,6 +7932,9 @@ gmo
// gmx : 2014-04-24 1&1 Mail & Media GmbH
gmx
// gold : 2015-01-22 June Edge, LLC
gold
// goldpoint : 2014-11-20 YODOBASHI CAMERA CO.,LTD.
goldpoint
@@ -8001,6 +8055,9 @@ ibm
// ice : 2014-10-30 IntercontinentalExchange, Inc.
ice
// icu : 2015-01-08 One.com A/S
icu
// ifm : 2014-01-30 ifm electronic gmbh
ifm
@@ -8109,6 +8166,12 @@ kiwi
// koeln : 2014-01-09 NetCologne Gesellschaft für Telekommunikation mbH
koeln
// komatsu : 2015-01-08 Komatsu Ltd.
komatsu
// kpn : 2015-01-08 Koninklijke KPN N.V.
kpn
// krd : 2013-12-05 KRG Department of Information Technology
krd
@@ -8133,6 +8196,9 @@ lat
// latrobe : 2014-06-16 La Trobe University
latrobe
// law : 2015-01-22 Minds + Machines Group Limited
law
// lawyer : 2014-03-20
lawyer
@@ -8160,6 +8226,9 @@ lidl
// life : 2014-02-06 Trixy Oaks, LLC
life
// lifeinsurance : 2015-01-15 American Council of Life Insurers
lifeinsurance
// lifestyle : 2014-12-11 Lifestyle Domain Holdings, Inc.
lifestyle
@@ -8202,6 +8271,9 @@ lotte
// lotto : 2014-04-10 Afilias Limited
lotto
// love : 2014-12-22 Merchant Law Group LLP
love
// ltd : 2014-09-25 Over Corner, LLC
ltd
@@ -8226,6 +8298,9 @@ maif
// maison : 2013-12-05 Victor Frostbite, LLC
maison
// makeup : 2015-01-15 L'Oréal
makeup
// man : 2014-12-04 MAN SE
man
@@ -8334,6 +8409,9 @@ nagoya
// navy : 2014-03-06 United TLD Holdco Ltd.
navy
// nec : 2015-01-08 NEC Corporation
nec
// netbank : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA
netbank
@@ -8367,6 +8445,9 @@ ninja
// nissan : 2014-03-27 NISSAN MOTOR CO., LTD.
nissan
// nokia : 2015-01-08 Nokia Corporation
nokia
// norton : 2014-12-04 Symantec Corporation
norton
@@ -8391,6 +8472,9 @@ obi
// okinawa : 2013-12-05 BusinessRalliart Inc.
okinawa
// omega : 2015-01-08 The Swatch Group Ltd
omega
// one : 2014-11-07 One.com A/S
one
@@ -8400,6 +8484,9 @@ ong
// onl : 2013-09-16 I-Registry Ltd.
onl
// online : 2015-01-15 DotOnline Inc.
online
// ooo : 2014-01-09 INFIBEAM INCORPORATION LIMITED
ooo
@@ -8469,6 +8556,9 @@ pictet
// pictures : 2014-03-06 Foggy Sky, LLC
pictures
// pid : 2015-01-08 Top Level Spectrum, Inc.
pid
// pin : 2014-12-18 Amazon EU S.à r.l.
pin
@@ -8625,6 +8715,9 @@ saarland
// safe : 2014-12-18 Amazon EU S.à r.l.
safe
// safety : 2015-01-08 Safety Registry Services, LLC.
safety
// sakura : 2014-12-18 SAKURA Internet Inc.
sakura
@@ -8724,12 +8817,21 @@ shiksha
// shoes : 2013-10-02 Binky Galley, LLC
shoes
// shouji : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
shouji
// shriram : 2014-01-23 Shriram Capital Ltd.
shriram
// singles : 2013-08-27 Fern Madison, LLC
singles
// site : 2015-01-15 DotSite Inc.
site
// skin : 2015-01-15 L'Oréal
skin
// sky : 2014-06-19 Sky IP International Ltd, a company incorporated in England and Wales, operating via its registered Swiss branch
sky
@@ -8754,6 +8856,9 @@ solar
// solutions : 2013-11-07 Silver Cover, LLC
solutions
// sony : 2015-01-08 Sony Corporation
sony
// soy : 2014-01-23 Charleston Road Registry Inc.
soy
@@ -8769,6 +8874,9 @@ spreadbetting
// stada : 2014-11-13 STADA Arzneimittel AG
stada
// star : 2015-01-08 Star India Private Limited
star
// statoil : 2014-12-04 Statoil ASA
statoil
@@ -8781,12 +8889,18 @@ stcgroup
// stockholm : 2014-12-18 Stockholms kommun
stockholm
// storage : 2014-12-22 Self Storage Company LLC
storage
// study : 2014-12-11 OPEN UNIVERSITIES AUSTRALIA PTY LTD
study
// style : 2014-12-04 Binky Moon, LLC
style
// sucks : 2014-12-22 Vox Populi Registry Inc.
sucks
// supplies : 2013-12-19 Atomic Fields, LLC
supplies
@@ -8805,6 +8919,9 @@ surgery
// suzuki : 2014-02-20 SUZUKI MOTOR CORPORATION
suzuki
// swatch : 2015-01-08 The Swatch Group Ltd
swatch
// swiss : 2014-10-16 Swiss Confederation
swiss
@@ -8823,6 +8940,9 @@ tab
// taipei : 2014-07-10 Taipei City Government
taipei
// taobao : 2015-01-15 Alibaba Group Holding Limited
taobao
// tatar : 2014-04-24 Limited Liability Company
tatar
@@ -8859,6 +8979,9 @@ tires
// tirol : 2014-04-24 punkt Tirol GmbH
tirol
// tmall : 2015-01-15 Alibaba Group Holding Limited
tmall
// today : 2013-09-20 Pearl Woods, LLC
today
@@ -8877,6 +9000,9 @@ toray
// toshiba : 2014-04-10 TOSHIBA Corporation
toshiba
// tours : 2015-01-22 Sugar Station, LLC
tours
// town : 2014-03-06 Koko Moon, LLC
town
@@ -8940,6 +9066,9 @@ video
// villas : 2013-12-05 New Sky, LLC
villas
// vip : 2015-01-22 Minds + Machines Group Limited
vip
// virgin : 2014-09-25 Virgin Enterprises Limited
virgin
@@ -8988,6 +9117,12 @@ wanggou
// watch : 2013-11-14 Sand Shadow, LLC
watch
// watches : 2014-12-22 Richemont DNS Inc.
watches
// weather : 2015-01-08 The Weather Channel, LLC
weather
// webcam : 2014-01-23 dot Webcam Limited
webcam
@@ -9042,9 +9177,16 @@ xbox
// xerox : 2014-10-24 Xerox DNHC LLC
xerox
// xihuan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
xihuan
// xin : 2014-12-11 Elegant Leader Limited
xin
// xn--11b4c3d : 2015-01-15 VeriSign Sarl
कॉम
xn--11b4c3d
// xn--1qqw23a : 2014-01-09 Guangzhou YU Wei Information Technology Co., Ltd.
佛山
xn--1qqw23a
@@ -9061,6 +9203,14 @@ xn--3bst00m
在线
xn--3ds443g
// xn--3pxu8k : 2015-01-15 VeriSign Sarl
点看
xn--3pxu8k
// xn--42c2d9a : 2015-01-15 VeriSign Sarl
คอม
xn--42c2d9a
// xn--45q11c : 2013-11-21 Zodiac Scorpio Limited
八卦
xn--45q11c
@@ -9077,6 +9227,10 @@ xn--55qw42g
公司
xn--55qx5d
// xn--5tzm5g : 2014-12-22 Global Website TLD Asia Limited
网站
xn--5tzm5g
// xn--6frz82g : 2013-09-23 Afilias Limited
移动
xn--6frz82g
@@ -9097,6 +9251,10 @@ xn--80asehdb
сайт
xn--80aswg
// xn--9dbq2a : 2015-01-15 VeriSign Sarl
קום
xn--9dbq2a
// xn--9et52u : 2014-06-12 RISE VICTORY LIMITED
时尚
xn--9et52u
@@ -9109,6 +9267,10 @@ xn--b4w605ferd
орг
xn--c1avg
// xn--c2br7g : 2015-01-15 VeriSign Sarl
नेट
xn--c2br7g
// xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD
삼성
xn--cg4bki
@@ -9137,6 +9299,10 @@ xn--eckvdtc9d
新闻
xn--efvy88h
// xn--fhbei : 2015-01-15 VeriSign Sarl
كوم
xn--fhbei
// xn--fiq228c5hs : 2013-09-08 TLD REGISTRY LIMITED
中文网
xn--fiq228c5hs
@@ -9169,10 +9335,22 @@ xn--imr513n
网络
xn--io0a7i
// xn--j1aef : 2015-01-15 VeriSign Sarl
ком
xn--j1aef
// xn--jlq61u9w7b : 2015-01-08 Nokia Corporation
诺基亚
xn--jlq61u9w7b
// xn--kcrx77d1x4a : 2014-11-07 Koninklijke Philips N.V.
飞利浦
xn--kcrx77d1x4a
// xn--kpu716f : 2014-12-22 Richemont DNS Inc.
手表
xn--kpu716f
// xn--kput3i : 2014-02-13 Beijing RITT-Net Technology Development Co., Ltd
手机
xn--kput3i
@@ -9193,6 +9371,10 @@ xn--mgbb9fbpob
همراه
xn--mgbt3dhd
// xn--mk1bu44c : 2015-01-15 VeriSign Sarl
닷컴
xn--mk1bu44c
// xn--mxtq1m : 2014-03-06 Net-Chinese Co., Ltd.
政府
xn--mxtq1m
@@ -9221,6 +9403,14 @@ xn--nyqy26a
рус
xn--p1acf
// xn--pbt977c : 2014-12-22 Richemont DNS Inc.
珠宝
xn--pbt977c
// xn--pssy2u : 2015-01-15 VeriSign Sarl
大拿
xn--pssy2u
// xn--q9jyb4c : 2013-09-17 Charleston Road Registry Inc.
みんな
xn--q9jyb4c
@@ -9233,10 +9423,18 @@ xn--qcka1pmc
世界
xn--rhqv96g
// xn--ses554g : 2014-01-16 HU YI GLOBAL INFORMATION RESOURCES (HOLDING) COMPANY. HONGKONG LIMITED
// xn--ses554g : 2014-01-16
网址
xn--ses554g
// xn--t60b56a : 2015-01-15 VeriSign Sarl
닷넷
xn--t60b56a
// xn--tckwe : 2015-01-15 VeriSign Sarl
コム
xn--tckwe
// xn--unup4y : 2013-07-14 Spring Fields, LLC
游戏
xn--unup4y
@@ -9289,6 +9487,9 @@ yokohama
// youtube : 2014-05-01 Charleston Road Registry Inc.
youtube
// yun : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
yun
// zara : 2014-11-07 Industria de Diseño Textil, S.A. (INDITEX, S.A.)
zara
@@ -9304,6 +9505,7 @@ zone
// zuerich : 2014-11-07 Kanton Zürich (Canton of Zurich)
zuerich
// ===END ICANN DOMAINS===
// ===BEGIN PRIVATE DOMAINS===
@@ -9430,6 +9632,10 @@ co.ca
co.nl
co.no
// Commerce Guys, SAS
// Submitted by Damien Tournoud <damien@commerceguys.com> 2015-01-22
*.platform.sh
// Cupcake : https://cupcake.io/
// Submitted by Jonathan Rudenberg <jonathan@cupcake.io> 2013-10-08
cupcake.is
@@ -1,6 +1,8 @@
#
#.Distributed under the terms of the GNU General Public License (GPL) version 2.0
#
# script for sending updates to cloudflare.com
# 2014-2015 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
#.2014-2015 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
# many thanks to Paul for testing and feedback during development
#
# This script is parsed by dynamic_dns_functions.sh inside send_update() function
@@ -34,16 +36,16 @@ __DOMAIN="$__DOMAIN.$__TLD"
# function copied from /usr/share/libubox/jshn.sh
# from BB14.09 for backward compatibility to AA12.09
grep -i "json_get_keys" /usr/share/libubox/jshn.sh >/dev/null 2>&1 || json_get_keys() {
local __dest="$1"
local _tbl_cur
local __dest="$1"
local _tbl_cur
if [ -n "$2" ]; then
json_get_var _tbl_cur "$2"
else
_json_get_var _tbl_cur JSON_CUR
fi
local __var="${JSON_PREFIX}KEYS_${_tbl_cur}"
eval "export -- \"$__dest=\${$__var}\"; [ -n \"\${$__var+x}\" ]"
if [ -n "$2" ]; then
json_get_var _tbl_cur "$2"
else
_json_get_var _tbl_cur JSON_CUR
fi
local __var="${JSON_PREFIX}KEYS_${_tbl_cur}"
eval "export -- \"$__dest=\${$__var}\"; [ -n \"\${$__var+x}\" ]"
}
# function to "sed" unwanted string parts from DATFILE
@@ -1,6 +1,8 @@
#
#.Distributed under the terms of the GNU General Public License (GPL) version 2.0
#
# script for sending updates to no-ip.com / noip.com
# 2014-2015 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
#.2014-2015 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
#
# This script is parsed by dynamic_dns_functions.sh inside send_update() function
#
@@ -1,35 +0,0 @@
#!/bin/sh
#
# sample script for detecting local IP
# 2014-2015 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
#
# activated inside /etc/config/ddns by setting
#
# option ip_source 'script'
# option ip_script '/usr/lib/ddns/getlocalip_sample.sh -6' !!! parameters ALLOWED
#
# the script is executed (not parsed) inside get_local_ip() function
# of /usr/lib/ddns/dynamic_dns_functions.sh
#
# useful when this box is the only DDNS client in the network
# IP adresses of "internal" boxes could be detected with this script
# so no need to install ddns client on every "internal" box
# On IPv6 every internal box normally has it's own external IP
#
# This script should
# - return the IP address via stdout echo -n "...." !!! without line feed
# - report errors via stderr echo "...." >&2
# - return an error code ('0' for success) exit 123
case $1 in
-4) echo -n "8.8.8.8" # never append linefeed or simular
exit 0
;; # IP's of Googles public DNS
-6) echo -n "2001:4860:4860::8888"
exit 0
;;
*) echo "$0 - Invalid or missing parameter" >&2
exit 1
esac
echo "Should never come here" >&2
exit 2
@@ -1,39 +0,0 @@
# sample script for sending user defined updates
# 2014-2015 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
#
# activated inside /etc/config/ddns by setting
#
# option update_script '/usr/lib/ddns/update_sample.sh'
#
# the script is parsed (not executed) inside send_update() function
# of /usr/lib/ddns/dynamic_dns_functions.sh
# so you can use all available functions and global variables inside this script
# already defined in dynamic_dns_updater.sh and dynamic_dns_functions.sh
#
# It make sence to define the update url ONLY inside this script
# because it's anyway unique to the update script
# otherwise it should work with the default scripts
#
# the code here is the copy of the default used inside send_update()
#
# tested with spdns.de
local __URL="http://[USERNAME]:[PASSWORD]@update.spdns.de/nic/update?hostname=[DOMAIN]&myip=[IP]"
# inside url we need username and password
[ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing 'username'"
[ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing 'password'"
# do replaces in URL
__URL=$(echo $__URL | sed -e "s#\[USERNAME\]#$URL_USER#g" -e "s#\[PASSWORD\]#$URL_PASS#g" \
-e "s#\[DOMAIN\]#$domain#g" -e "s#\[IP\]#$__IP#g")
[ $use_https -ne 0 ] && __URL=$(echo $__URL | sed -e 's#^http:#https:#')
do_transfer "$__URL" || return 1
write_log 7 "DDNS Provider answered:\n$(cat $DATFILE)"
# analyse provider answers
# "good [IP_ADR]" = successful
# "nochg [IP_ADR]" = no change but OK
grep -E "good|nochg" $DATFILE >/dev/null 2>&1
return $? # "0" if "good" or "nochg" found