Add 'emailonly' client to send status emails without needing a DDNS host

This adds a protocol to send status updates without needing a Dynamic
DNS host. This is useful if you don't have a DDNS host but want to be
updated when the IP of a machine changes. Because of how ddclient is
written, it requires setting a host name, but doesn't actually do
anything with it. Let me know if there's a better way to handle this.
This commit is contained in:
Joel Croteau 2024-04-20 19:55:48 -07:00
parent c56ce41824
commit c7268e156a
2 changed files with 2338 additions and 698 deletions

View file

@ -88,7 +88,6 @@ ssl=yes # use ssl-support. Works with
# protocol=dyndns2 \ # protocol=dyndns2 \
# your-static-host.dyndns.org # your-static-host.dyndns.org
##
## ##
## dyndns.org custom addresses ## dyndns.org custom addresses
## ##
@ -130,8 +129,8 @@ ssl=yes # use ssl-support. Works with
## OrgDNS.org account-configuration ## OrgDNS.org account-configuration
## ##
# use=web, web=members.orgdns.org/nic/ip # use=web, web=members.orgdns.org/nic/ip
# protocol=dyndns2
# server=www.orgdns.org \ # server=www.orgdns.org \
# protocol=dyndns2 \
# login=yourLoginName \ # login=yourLoginName \
# password=yourPassword \ # password=yourPassword \
# yourSubdomain.orgdns.org # yourSubdomain.orgdns.org
@ -141,9 +140,9 @@ ssl=yes # use ssl-support. Works with
## ##
# protocol=namecheap, \ # protocol=namecheap, \
# server=dynamicdns.park-your-domain.com, \ # server=dynamicdns.park-your-domain.com, \
# login=my-namecheap.com-login, \ # login=example.com, \
# password=my-namecheap.com-password \ # password=example.com-password \
# fully.qualified.host # subdomain.example.com
## ##
## NearlyFreeSpeech.NET (nearlyfreespeech.net) ## NearlyFreeSpeech.NET (nearlyfreespeech.net)
@ -154,12 +153,10 @@ ssl=yes # use ssl-support. Works with
# zone=example.com \ # zone=example.com \
# example.com,subdomain.example.com # example.com,subdomain.example.com
##
## ##
## Loopia (loopia.se) ## Loopia (loopia.se)
## ##
# use=web # use=web, web=loopia
# web=loopia
# protocol=dyndns2 # protocol=dyndns2
# server=dns.loopia.se # server=dns.loopia.se
# script=/XDynDNSServer/XDynDNS.php # script=/XDynDNSServer/XDynDNS.php
@ -192,7 +189,7 @@ ssl=yes # use ssl-support. Works with
#protocol=cloudflare, \ #protocol=cloudflare, \
#zone=domain.tld, \ #zone=domain.tld, \
#ttl=1, \ #ttl=1, \
#login=your-login-email, \ # Only needed if you are using your global API key. If you are using an API token, set it to "token" (wihtout double quotes). #login=your-login-email, \ # Only needed if you are using your global API key. If you are using an API token, set it to "token" (without double quotes).
#password=APIKey \ # This is either your global API key, or an API token. If you are using an API token, it must have the permissions "Zone - DNS - Edit" and "Zone - Zone - Read". The Zone resources must be "Include - All zones". #password=APIKey \ # This is either your global API key, or an API token. If you are using an API token, it must have the permissions "Zone - DNS - Edit" and "Zone - Zone - Read". The Zone resources must be "Include - All zones".
#domain.tld,my.domain.tld #domain.tld,my.domain.tld
@ -200,12 +197,23 @@ ssl=yes # use ssl-support. Works with
## Gandi (gandi.net) ## Gandi (gandi.net)
## ##
## Single host update ## Single host update
# protocol=gandi, \ # protocol=gandi
# zone=example.com, \ # zone=example.com
# password=my-gandi-api-key, \ # password=my-gandi-access-token
# ttl=3h \ # use-personal-access-token=yes
# ttl=10800 # optional
# myhost.example.com # myhost.example.com
##
## GoDaddy (godaddy.com)
##
# protocol=godaddy, \
# password=my-godaddy-api-key, \
# password=my-godaddy-secret, \
# ttl=600 \
# zone=example.com, \
# myhost.example.com,nexthost.example.com
## ##
## Google Domains (www.google.com/domains) ## Google Domains (www.google.com/domains)
## ##
@ -233,12 +241,12 @@ ssl=yes # use ssl-support. Works with
## ##
## MyOnlinePortal (http://myonlineportal.net) ## MyOnlinePortal (http://myonlineportal.net)
## ##
# protocol=dyndns2
# ssl=yes
# # ipv6=yes # optional # # ipv6=yes # optional
# use=web, web=myonlineportal.net/checkip # use=web, web=myonlineportal.net/checkip
# # use=if, if=eth0 # alternative to use=web # # use=if, if=eth0 # alternative to use=web
# # if-skip=Scope:Link # alternative to use=web # # if-skip=Scope:Link # alternative to use=web
# protocol=dyndns2
# ssl=yes
# login=your-myonlineportal-username # login=your-myonlineportal-username
# password=your-myonlineportal-password # password=your-myonlineportal-password
# domain.myonlineportal.net # domain.myonlineportal.net
@ -246,8 +254,8 @@ ssl=yes # use ssl-support. Works with
## ##
## nsupdate.info IPV4(https://www.nsupdate.info) ## nsupdate.info IPV4(https://www.nsupdate.info)
## ##
#protocol=dyndns2
#use=web, web=http://ipv4.nsupdate.info/myip #use=web, web=http://ipv4.nsupdate.info/myip
#protocol=dyndns2
#server=ipv4.nsupdate.info #server=ipv4.nsupdate.info
#login=domain.nsupdate.info #login=domain.nsupdate.info
#password='123' #password='123'
@ -257,8 +265,8 @@ ssl=yes # use ssl-support. Works with
## nsupdate.info IPV6 (https://www.nsupdate.info) ## nsupdate.info IPV6 (https://www.nsupdate.info)
## ddclient releases <= 3.8.1 do not support IPv6 ## ddclient releases <= 3.8.1 do not support IPv6
## ##
#protocol=dyndns2
#usev6=if, if=eth0 #usev6=if, if=eth0
#protocol=dyndns2
#server=ipv6.nsupdate.info #server=ipv6.nsupdate.info
#login=domain.nsupdate.info #login=domain.nsupdate.info
#password='123' #password='123'
@ -288,6 +296,16 @@ ssl=yes # use ssl-support. Works with
# password=your_password # password=your_password
# test.example.com # test.example.com
##
## Porkbun (https://porkbun.com/)
##
# protocol=porkbun
# apikey=APIKey
# secretapikey=SecretAPIKey
# root-domain=example.com
# host.example.com,host2.sub.example.com
# example.com,sub.example.com
## ##
## ClouDNS (https://www.cloudns.net) ## ClouDNS (https://www.cloudns.net)
## ##
@ -303,9 +321,79 @@ ssl=yes # use ssl-support. Works with
# password=mypassword \ # password=mypassword \
# myhost.mydomain.com # myhost.mydomain.com
##
## dnsexit (www.dnsexit.com) ## dnsexit (www.dnsexit.com)
## ##
#protocol=dnsexit, \ #protocol=dnsexit, \
#login=myusername, \ #login=myusername, \
#password=mypassword, \ #password=mypassword, \
#subdomain-1.domain.com,subdomain-2.domain.com #subdomain-1.domain.com,subdomain-2.domain.com
##
## dnsexit2 (API method www.dnsexit.com)
##
#protocol=dnsexit2
#password=MyAPIKey
#subdomain-1.domain.com,subdomain-2.domain.com
##
## domeneshop (www.domeneshop.no)
##
# protocol=domeneshop
# login=<token>
# password=<secret>
# subdomain-1.domain.com,subdomain-2.domain.com
##
## Njal.la (http://njal.la/)
##
# protocol=njalla,
# password=mypassword
# quietreply=no|yes
# my-domain.com
##
## regfish.de (www.regfish.de/)
##
# protocol=regfishde,
# password=mypassword
# my-domain.com
##
## Enom (www.enom.com)
##
# protocol=enom,
# login=domain.name,
# password=domain-password
# my-domain.com
##
## DigitalOcean (www.digitalocean.com)
##
#protocol=digitalocean, \
#zone=example.com, \
#password=api-token \
#example.com,sub.example.com
##
## Infomaniak (www.infomaniak.com)
##
# protocol=infomaniak,
# login=ddns_username,
# password=ddns_password
# example.com
#
# N.B. the infomaniak protocol is obsolete. Please use dyndns2 instead:
#
# protocol=dyndns2,
# use=web, web=infomaniak.com/ip.php/
# login=ddns_username,
# password=ddns_password
# redirect=2
# example.com
##
## Email Only
##
# protocol=emailonly
# noop

File diff suppressed because it is too large Load diff