DNS::EasyDNS - Update your EasyDNS dynamic DNS entries
use DNS::EasyDNS; my $ed = DNS::EasyDNS->new; $ed->update( username => "foo", password => "bar" ) || die "Failed: $@";
This module allows you to update your EasyDNS ( http://www.easydns.com/ ) dynamic DNS records. This is done via an http get using the libwww-perl modules.
Create a new EasyDNS object. This is actually an inheritted LWP::UserAgent so you may like to use some of the UserAgent methods. For example, if you are behind a proxy server:
$ed->proxy('http', 'http://proxy.sn.no:8001/');
Updates your EasyDNS dynamic DNS records. Valid %args are:
%args
username - Your EasyDNS login name. This is required.
username
password - The corresponding password. This is required.
password
hostname - The full host being updated. This is required.
hostname
tld - The root domain of your hostname, for example if your hostname is "example.co.uk" you should set "tld" to "co.uk".
tld
myip - The IP address of the client to be updated. Use "0.0.0.0" to set record to an offline state (sets record to "offline.easydns.com"). This defaults to the IP address of the incoming connection (handy if you are being natted).
myip
mx - Use this parameter as the MX handler for the domain being updated, it defaults to preference 5.
mx
backmx - Values are either "YES" or "NO", if "YES" we set smtp.easydns.com to be a backup mail spool for domain being updated at preference 100.
backmx
"YES"
"NO"
wildcard - Values are either "ON" or "OFF", if "ON" sets a wildcard host record for the domain being updated equal to the IP address specified in myip.
wildcard
"ON"
"OFF"
secure - Values are either 1 or 0. If 1, then SSL https is used to connect to EasyDNS. The SSL connection has the big advantage that your passwords are not passed in plain-text accross the internet. Secure is on by default if Crypt::SSLeay is installed. A warning will be generated if it's not installed, unless you set secure = 0>. If you set secure = 1> and the module is unavailable, the module will croak.
secure
1
0
secure =
croak
The function returns TRUE of success. On failure it returns FALSE and sets $@.
TRUE
FALSE
$@
Since EasyDNS object is an inheritted LWP::UserAgent, it overrides this UserAgent method for your convenience. It uses the credentials passed in the constructor. There is no real reason to override, or call this.
sub get_basic_credentials { ($_[0]->{"username"}, $_[0]->{"password"}) }
There are some example scripts in the examples directory of the module distribution. These are designed to run out of cron (or similar). You should not run them to often to avoid overloading the EasyDNS servers (in fact EasyDNS will not respond to similar reqests less that 10 minutes apart). Ideally your code should cache the existing value for your IP, and only update EasyDNS when it changes.
examples
None known
This module is Copyright (c) 2003-2006 Gavin Brock gbrock@cpan.org. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
For more information about the EasyDNS services please visit http://www.easydns.com/. This module is not written nor supported by EasyDNS Technologies Inc., however the code (and much of the documentation) is based on the Update API as provided by EasyDNS.
LWP::UserAgent
To install DNS::EasyDNS, copy and paste the appropriate command in to your terminal.
cpanm
cpanm DNS::EasyDNS
CPAN shell
perl -MCPAN -e shell install DNS::EasyDNS
For more information on module installation, please visit the detailed CPAN module installation guide.