12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #!/usr/bin/env perl
-
- use LWP::Simple;
-
- use strict;
- use warnings;
-
- # change these values
- my $login = 'username';
- my $password = 'password';
- my $domain = 'mydynamicdns.example.com';
- my $poweradmin_url = 'http://www.example.com/poweradmin';
- my $up_update_url = $poweradmin_url . '/dynamic_update.php';
- my $ip_lookup_url = $poweradmin_url . '/addons/clientip.php';
- my $verbose = 1;
-
- my $ip_address = LWP::Simple::get($ip_lookup_url)
- or die("Error: Could not get your global IP address!\n");
-
- # FIXME: doesn't support IPv6
- if ( $ip_address !~/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ )
- {
- print
- "Error: Invalid global IP address! Check if Poweradmin url is correct\n";
- exit;
- }
-
- print "Updating the IP address ($ip_address) now ... \n" if $verbose;
-
- # insert authentication data to url
- $poweradmin_url =~ s/^(http[s]?:\/\/)/$1$login:$password\@/;
-
- my $response =
- LWP::Simple::get( "$poweradmin_url/dynamic_update.php"
- . "?hostname=$domain&myip=$ip_address&verbose=$verbose" )
- or die($!);
-
- if ( !defined $response || $response eq "" ) {
- print "Error: Could not contact your poweradmin web server\n";
- exit(0);
- }
-
- print "Status: $response\n" if $verbose;
|