нашел на просторах, скрипт который запрашивает внешний ip и сравнивает со старым ip (который сохранен заранее в файл) и авториз. на яндексе.
нужно выпилить все лишнее. а именно обращение к яндексу.
т.е. получил ip адрес, сравнил со старым, если одинаковые - ничего не делать. если изменился перейти по моему URL.
т.е все домены, токены, ttl - лишние..
ну или может кто поделится своим скриптом))
#!/usr/bin/perl
use LWP::UserAgent;
my $current_ip = `curl https://myexternalip.com/raw`;
if ($current_ip =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/) {
my $new_ip = "$1.$2.$3.$4";
open (FILE,"my_ip.txt");
my @lines = <FILE>;
$old_ip = $lines[0];
$old_ip =~ s/^\s+|\s+$//g;
close(FILE);
if ($old_ip eq $new_ip) {
die "IP not changed"; # Выходим из скрипта, если IP не изменился
}
open (FILE,">my_ip.txt");
print FILE $new_ip; # Записываем в файл новый IP
close(FILE);
my $token = "JVP..."; #Токен для администратора DNS Яндекса
my $domain = "domain.ru"; #Основной домен
my $subdomain = "ddns"; #Поддомен
my $id = "3570657"; #Идентификатор поддомена
my $TTL = "900"; #Время кеширования записи
my $uri ="https://pddimp.yandex.ru/api2/admin/dns/edit"; # URI запроса
my $ua = LWP::UserAgent->new( ssl_opts => { verify_hostname => 0 } );
$response = $ua->post( $uri,
[
'domain' => $domain,
'subdomain' => $subdomain,
'record_id' => $id,
'content' => $new_ip,
'TTL' => $TTL,
],
'PddToken' => $token,
);
if ( $response->is_success ) {
print $response->decoded_content;
} else {
die $response->status_line;
}
}