NAME

DNS::ZoneEdit - Update your ZoneEdit dynamic DNS entries

SYNOPSIS

This module allows you to update your ZoneEdit ( http://www.zoneedit.com/ ) dynamic DNS records. This is done via an http get using the libwww-perl modules.

use DNS::ZoneEdit;

my $ze = DNS::ZoneEdit->new();
$ze->update( hostname => "cpan.org", username => "foo", password => "bar" ) || die "Failed: $@";

METHODS

DNS::ZoneEdit->new();

Create a new ZoneEdit 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:

$ze->proxy('http', 'http://proxy.sn.no:8001/');
$ze->update(%args);

Updates your ZoneEdit dynamic DNS records. Valid %args are:

    username - Your ZoneEdit login name. This is required.

    password - The corresponding password. This is required.

    hostname - The full host being updated. This is required. Contains a comma-delimited list of hosts that have IP addresses. This parameter may be *.domain.com to update a wildcard A-record.

    myip - The IP address of the client to be updated. This defaults to the IP address of the incoming connection (handy if you are being natted).

    secure - Values are either 1 or 0. If 1, then SSL https is used to connect to ZoneEdit. 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.

The function returns TRUE of success. On failure it returns FALSE and sets $@.

DNS::ZoneEdit->get_basic_credentials();

Since ZoneEdit 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"}) }

NOTES

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 too often to avoid overloading the ZoneEdit servers. Ideally your code should cache the existing value for your IP, and only update ZoneEdit when it changes.

ACKNOWLEDGEMENTS

This module is based on Gavin Brock's excellent DNS::EasyDNS.

For more information about the ZoneEdit services please visit http://www.zoneedit.com/. This module is not written nor supported by ZoneEdit LLC.

COPYRIGHT

Copyright (c) 2003-2006 Gavin Brock gbrock@cpan.org, Copyright 2009 Evan Giles.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

LWP::UserAgent, DNS::EasyDNS