parent
357bc6ff0d
commit
e7fb14f328
3 changed files with 37 additions and 19 deletions
|
|
@ -26,6 +26,7 @@ Dynamic DNS services currently supported include:
|
||||||
CloudFlare - See https://www.cloudflare.com/ for details
|
CloudFlare - See https://www.cloudflare.com/ for details
|
||||||
Google - See http://www.google.com/domains for details
|
Google - See http://www.google.com/domains for details
|
||||||
Duckdns - See https://duckdns.org/ for details
|
Duckdns - See https://duckdns.org/ for details
|
||||||
|
Freemyip - See https://freemyip.com for details
|
||||||
woima.fi - See https://woima.fi/ for details
|
woima.fi - See https://woima.fi/ for details
|
||||||
MyDNS.JP - See http://www.mydns.jp/ for details
|
MyDNS.JP - See http://www.mydns.jp/ for details
|
||||||
|
|
||||||
|
|
@ -43,8 +44,9 @@ REQUIREMENTS:
|
||||||
- one or more accounts from one of the dynamic DNS services
|
- one or more accounts from one of the dynamic DNS services
|
||||||
|
|
||||||
- Perl 5.014 or later
|
- Perl 5.014 or later
|
||||||
(you need the IO::Socket::SSL perl library for ssl-support
|
(you need the IO::Socket::SSL perl library for ssl-support,
|
||||||
and JSON::Any perl library for JSON support)
|
JSON::PP perl library for JSON support and
|
||||||
|
IO::Socket:INET6 perl library for ipv6-support)
|
||||||
|
|
||||||
- Linux or probably any common Unix system
|
- Linux or probably any common Unix system
|
||||||
|
|
||||||
|
|
|
||||||
26
ddclient
26
ddclient
|
|
@ -26,7 +26,7 @@ use Sys::Hostname;
|
||||||
use IO::Socket;
|
use IO::Socket;
|
||||||
use Data::Validate::IP;
|
use Data::Validate::IP;
|
||||||
|
|
||||||
my $version = "3.9.0";
|
my $version = "3.8.3";
|
||||||
my $programd = $0;
|
my $programd = $0;
|
||||||
$programd =~ s%^.*/%%;
|
$programd =~ s%^.*/%%;
|
||||||
my $program = $programd;
|
my $program = $programd;
|
||||||
|
|
@ -3614,14 +3614,14 @@ Configuration variables applicable to the 'namecheap' protocol are:
|
||||||
server=fqdn.of.service ## defaults to dynamicdns.park-your-domain.com
|
server=fqdn.of.service ## defaults to dynamicdns.park-your-domain.com
|
||||||
login=service-login ## login name and password registered with the service
|
login=service-login ## login name and password registered with the service
|
||||||
password=service-password ##
|
password=service-password ##
|
||||||
hostname ## the hostname to update.
|
fully.qualified.host ## the host registered with the service.
|
||||||
|
|
||||||
Example ${program}.conf file entries:
|
Example ${program}.conf file entries:
|
||||||
## single host update
|
## single host update
|
||||||
protocol=namecheap, \\
|
protocol=namecheap, \\
|
||||||
login=my-namecheap.com-login, \\
|
login=my-namecheap.com-login, \\
|
||||||
password=my-namecheap.com-password \\
|
password=my-namecheap.com-password \\
|
||||||
myhost
|
myhost.namecheap.com
|
||||||
|
|
||||||
EoEXAMPLE
|
EoEXAMPLE
|
||||||
}
|
}
|
||||||
|
|
@ -3630,10 +3630,9 @@ EoEXAMPLE
|
||||||
##
|
##
|
||||||
## written by Dan Boardman
|
## written by Dan Boardman
|
||||||
##
|
##
|
||||||
## based on https://www.namecheap.com/support/knowledgebase/
|
## based on http://www.namecheap.com/resources/help/index.asp?t=dynamicdns
|
||||||
## article.aspx/29/11/how-to-use-the-browser-to-dynamically-update-hosts-ip
|
|
||||||
## needs this url to update:
|
## needs this url to update:
|
||||||
## https://dynamicdns.park-your-domain.com/update?host=host_name&
|
## http://dynamicdns.park-your-domain.com/update?host=host_name&
|
||||||
## domain=domain.com&password=domain_password[&ip=your_ip]
|
## domain=domain.com&password=domain_password[&ip=your_ip]
|
||||||
##
|
##
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
@ -3649,9 +3648,11 @@ sub nic_namecheap_update {
|
||||||
verbose("UPDATE:","updating %s", $h);
|
verbose("UPDATE:","updating %s", $h);
|
||||||
|
|
||||||
my $url;
|
my $url;
|
||||||
$url = "https://$config{$h}{'server'}/update";
|
$url = "http://$config{$h}{'server'}/update";
|
||||||
my $domain = $config{$h}{'login'};
|
my $domain = $config{$h}{'login'};
|
||||||
$url .= "?host=$h";
|
my $host = $h;
|
||||||
|
$host =~ s/(.*)\.$domain(.*)/$1$2/;
|
||||||
|
$url .= "?host=$host";
|
||||||
$url .= "&domain=$domain";
|
$url .= "&domain=$domain";
|
||||||
$url .= "&password=$config{$h}{'password'}";
|
$url .= "&password=$config{$h}{'password'}";
|
||||||
$url .= "&ip=";
|
$url .= "&ip=";
|
||||||
|
|
@ -4160,8 +4161,6 @@ sub nic_nsupdate_update {
|
||||||
my $binary = $config{$h}{'login'};
|
my $binary = $config{$h}{'login'};
|
||||||
my $keyfile = $config{$h}{'password'};
|
my $keyfile = $config{$h}{'password'};
|
||||||
my $server = $config{$h}{'server'};
|
my $server = $config{$h}{'server'};
|
||||||
## nsupdate requires a port number to be separated by whitepace, not colon
|
|
||||||
$server =~ s/:/ /;
|
|
||||||
my $zone = $config{$h}{'zone'};
|
my $zone = $config{$h}{'zone'};
|
||||||
my $ip = $config{$h}{'wantip'};
|
my $ip = $config{$h}{'wantip'};
|
||||||
my $recordtype = '';
|
my $recordtype = '';
|
||||||
|
|
@ -4304,11 +4303,7 @@ sub nic_cloudflare_update {
|
||||||
|
|
||||||
# Get DNS record ID
|
# Get DNS record ID
|
||||||
$url = "https://$config{$key}{'server'}/zones/$zone_id/dns_records?";
|
$url = "https://$config{$key}{'server'}/zones/$zone_id/dns_records?";
|
||||||
if (is_ipv6($ip)) {
|
$url .= "type=A&name=$domain";
|
||||||
$url .= "type=AAAA&name=$domain";
|
|
||||||
} else {
|
|
||||||
$url .= "type=A&name=$domain";
|
|
||||||
}
|
|
||||||
|
|
||||||
$reply = geturl(opt('proxy'), $url, undef, undef, $headers);
|
$reply = geturl(opt('proxy'), $url, undef, undef, $headers);
|
||||||
unless ($reply) {
|
unless ($reply) {
|
||||||
|
|
@ -4770,6 +4765,7 @@ sub nic_mydns_update {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# vim: ai ts=4 sw=4 tw=78 :
|
# vim: ai ts=4 sw=4 tw=78 :
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -200,7 +200,6 @@ ssl=yes # use ssl-support. Works with
|
||||||
##
|
##
|
||||||
#protocol=cloudflare, \
|
#protocol=cloudflare, \
|
||||||
#zone=domain.tld, \
|
#zone=domain.tld, \
|
||||||
#server=www.cloudflare.com, \
|
|
||||||
#login=your-login-email, \
|
#login=your-login-email, \
|
||||||
#password=APIKey, \
|
#password=APIKey, \
|
||||||
#ttl=1 \
|
#ttl=1 \
|
||||||
|
|
@ -221,6 +220,27 @@ ssl=yes # use ssl-support. Works with
|
||||||
# password=my-auto-generated-password
|
# password=my-auto-generated-password
|
||||||
# protocol=duckdns hostwithoutduckdnsorg
|
# protocol=duckdns hostwithoutduckdnsorg
|
||||||
|
|
||||||
|
##
|
||||||
|
## Freemyip (http://freemyip.com/)
|
||||||
|
##
|
||||||
|
#
|
||||||
|
# protocol=freemyip,
|
||||||
|
# password=my-token
|
||||||
|
# myhost
|
||||||
|
|
||||||
|
##
|
||||||
|
## MyOnlinePortal (http://myonlineportal.net)
|
||||||
|
##
|
||||||
|
# protocol=dyndns2
|
||||||
|
# ssl=yes
|
||||||
|
# # ipv6=yes # optional
|
||||||
|
# use=web, web=myonlineportal.net/checkip
|
||||||
|
# # use=if, if=eth0 # alternative to use=web
|
||||||
|
# # if-skip=Scope:Link # alternative to use=web
|
||||||
|
# login=your-myonlineportal-username
|
||||||
|
# password=your-myonlineportal-password
|
||||||
|
# domain.myonlineportal.net
|
||||||
|
|
||||||
##
|
##
|
||||||
## MyDNS (www.mydns.jp)
|
## MyDNS (www.mydns.jp)
|
||||||
##
|
##
|
||||||
|
|
@ -228,4 +248,4 @@ ssl=yes # use ssl-support. Works with
|
||||||
# server=www.mydns.jp
|
# server=www.mydns.jp
|
||||||
# login=my-mydns.jp-login
|
# login=my-mydns.jp-login
|
||||||
# password=my-mydns.jp-password
|
# password=my-mydns.jp-password
|
||||||
# your-host.mydns.jp
|
# myhost.mydns.jp
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue