The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Net::DynDNS::GoDaddy - Provides Dynamic DNS functionality for your GoDaddy domains

Coverage Status

SYNOPSIS

use Net::DynDNS::GoDaddy;
use Addr::MyIP;

my $hostname = 'home';
my $domain   = 'example.com';

my $current_host_ip = host_ip_get($host, $domain);
my $my_ip = myip();

if ($current_host_ip ne $my_ip) {
    host_ip_set($host, $domain, $my_ip);
}

DESCRIPTION

For end-users, see the documentation for the update-ip binary.

Provides an interface to allow dynamically updating your GoDaddy domain's DNS name to IP mapping.

You must have a ~/godaddy_api.json file containing your GoDaddy API key and secret, in the following format:

{
    "api_key": "KEY DATA",
    "api_secret": "API SECRET"
}

The update-ip binary binary will do this for you automatically on first run.

FUNCTIONS

host_ip_get($host, $domain)

Returns the currently set IP address of the DNS A record for the host/domain pair.

Parameters:

$host

Mandatory, String: The name of the host, eg. www.

$domain

Mandatory, String: The name of the domain, eg. example.com.

Returns: String, the IP address that's currently set for the record.

host_ip_set($host, $domain, $ip)

Updates the DNS A record for the host/domain pair.

Parameters:

$host

Mandatory, String: The name of the host, eg. www.

$domain

Mandatory, String: The name of the domain, eg. example.com.

$ip

Mandatory, String: The IP address to set the record to eg. 192.168.10.10.

Returns: Bool, 1 on success, 0 on failure.

api_key_get

Fetch your GoDaddy API key and secret from the previously created godaddy_api.json in your home directory.

Not exported by default, use the qw(:all) tag to access it.

Croaks if the file can't be read.

Returns: A list of two scalars, the API key and the API secret.

api_key_set($key, $secret)

Creates the godaddy_api.json file in your home directory that contains your GoDaddy API key and secret.

Not exported by default, use the qw(:all) tag to access it.

Parameters:

$key

Mandatory, String: Your GoDaddy API key

$secret

Mandatory, String: Your GoDaddy API secret

Returns: 1 upon success.

AUTHOR

Steve Bertrand, <steveb at cpan.org>

LICENSE AND COPYRIGHT

Copyright 2022 Steve Bertrand.

This program is free software; you can redistribute it and/or modify it under the terms of the the Artistic License (2.0). You may obtain a copy of the full license at:

http://www.perlfoundation.org/artistic_license_2_0