Obsolete
/
dnsmanagerv1
Archived
3
0
Fork 0
This repository has been archived on 2024-06-18. You can view files and clone it, but cannot push or open issues/pull-requests.
dnsmanagerv1/cli/daemon/daemon.pl

61 lines
1.3 KiB
Perl
Raw Normal View History

2014-08-23 11:32:26 +02:00
#!/usr/bin/perl -w
use strict;
use warnings;
use v5.14;
use MIME::Base64 qw(encode_base64);
# the website sending your current IP address
our $checkip = "http://t.karchnu.fr/ip.php";
# Domain name of the service provider (like netlib.re)
our $nddservice = "netlib.re";
# Your domain
our $domain = "test.netlib.re";
# Login and password to connect to the website
our $login = "idtest";
our $pass = "mdptest";
# Your entry to change
#
# here, the entry is www.test.netlib.re
# put "@" in $name to change your $type record on $domain directly
our $name = 'www';
our $type = 'A'; # could be AAAA
# The CA certificate, to authenticate the website (should be provided)
# Check your service provider for updates
our $cacert = "ca.cert";
2014-08-23 11:32:26 +02:00
sub get_ip {
my @tmp_ip = split "\n", `wget -nv -O - $checkip`;
2014-08-23 11:32:26 +02:00
my $ip;
for(@tmp_ip) {
if($_ =~ /^[0-9.]+$/ || $_ =~ /^[0-9a-f:]+$/) {
$ip = $_;
}
}
$ip;
}
sub update {
my $ip = get_ip;
say "UPDATE :: domain $name.$domain => IP $ip, type $type";
my $passb64 = encode_base64($pass);
chomp $passb64;
2014-08-23 11:32:26 +02:00
my $cmd = "wget -O - ";
$cmd .=
"https://$nddservice/domain/cliup/$login/$passb64/$domain/$name/$type/$ip ";
$cmd .= "--ca-certificate=$cacert";
say "CMD :: $cmd";
`$cmd`;
2014-08-23 11:32:26 +02:00
}
update;