#!/usr/bin/perl # # This is dyndns refresher for autosole # by denis@msh.lv # 20060607 use LWP::UserAgent; use LWP::Authen::Basic; use HTTP::Request::Common; use HTTP::Response; $HOST = "autosole"; $DOMAIN = "dyndns.org"; $USER = "autosole"; $PASS = "password"; $URL = "http://$USER:$PASS\@members.dyndns.org/nic/update?system=dyndns"; `/usr/bin/host $HOST.$DOMAIN` =~ /([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})/s; $current_ip = $1; # print $current_ip; if ( $current_ip != "" ) { my $ua = new LWP::UserAgent; # Change IP to local (incorrect) $res = $ua->request( GET "$URL&hostname=$HOST.$DOMAIN" ); if ($res->is_error) { exit ( $res->status_line ); } # Set IP back to saved $req = HTTP::Request->new(GET => "$URL&hostname=$HOST.$DOMAIN&myip=$current_ip"); # send request $res = $ua->request($req); # check the outcome if ($res->is_error) { print "Error: " . $res->status_line . "\n"; } } else { print "Cannot get IP of $HOST.$DOMAIN \n"; }