# he-dyndns This code is a shell-based dynamic DNS client for Hurricane Electric's dns.he.net service. This code is designed to be maximally portable using common Linux/BSD commands and avoid Perl, Python, etc. In its default mode, it updates one or more FQDNs with the IP address that dns.he.net detects as the source request. # Installation There is really nothing to install. Copy he-dyndns somewhere useful such as /usr/local/bin. # Configuration The only configuration file/item is if you want to use the file /etc/he-dns-secret to contain the key for authenticating to dns.he.net. Otherwise, you can provide it on the command line with the **-s** option. The **/etc/he-dns-secret** file is sourced into the Bash environment by the script. It can contain any shell code that can execute when being called with a "source" function. The only key thing that matters is that the variable CODE is defined by the script. Since this file will be sourced into the program, ensure proper security is applied to this file. # Runtime Options **he-dyndns** takes the following options: ## Requied Options - **-4**: Update the IPv4 "A" record for the FQDN(s) - **-6**: Update the IPv6 "AAAA" record for the FQDN(s). - **-d**: One or more fully-qualified host entries for the domain separated by commas Note that one or both of -4 and -6 must be specified for the script to actually do anything. ## Optional Options - **-s**: The secret key for updating the entries Any other unsupported option or no options will print a usage message # Return Values Returns 0 on success or 1 on failure. Failure message returns the exact error from dyn.dns.he.net, no more and no less. # Usage This script is designed to be called from a Cron entry or another script. An example usage: ``` # /usr/local/bin/he-dyndns -46 -s SECRETKEY -d foo.example.com,bar.example.com ```