Есть сервер, подключенный к модему с динамическим public ip. Решил обойтись без dynamic dns. На сервере пишу скрипт на Perl, который выходит на сайт whatismyipaddress.com, узнает там свой айпишник, записывает его в файл ip.htm и выкладывает на ftp.
#!/usr/bin/perl
# Script by k4
open DB, "ip.htm";
$pth="/home/user";
chdir $pth;
$lastip=;
chomp $lastip;
#print $lastip;
my $url = 'http://whatismyipaddress.com/';
use LWP::Simple;
my $content = get $url;
die "Couldn't get $url" unless defined $content;
if($content =~ m/(IP\sInformation:\s\)(\d+\.\d+\.\d+\.\d+)(\<\!\-\-\s)/) {
if ($lastip eq $2) { } else { $a=1; print `echo $2 > ip.htm`; }
} else {
print "IP is unknown\n";
}
if ($a) {
use Net::FTP;
$ftp = Net::FTP->new('ftp.host.net', Debug => 0)
or die "Cannot connect to sgsn1: $@";
$ftp->login('login', 'password')
or die "Cannot login", $ftp->message;
#$ftp->cwd("/")
#or die "Cannot change working directory ", $ftp->message;
$ftp->put("ip.htm")
or die "send failed ", $ftp->message;
$ftp->quit;
}
#!/usr/bin/perl
# Script by k4
open DB, "ip.htm";
$pth="/home/user";
chdir $pth;
$lastip=
chomp $lastip;
#print $lastip;
my $url = 'http://whatismyipaddress.com/';
use LWP::Simple;
my $content = get $url;
die "Couldn't get $url" unless defined $content;
if($content =~ m/(IP\sInformation:\s\)(\d+\.\d+\.\d+\.\d+)(\<\!\-\-\s)/) {
if ($lastip eq $2) { } else { $a=1; print `echo $2 > ip.htm`; }
} else {
print "IP is unknown\n";
}
if ($a) {
use Net::FTP;
$ftp = Net::FTP->new('ftp.host.net', Debug => 0)
or die "Cannot connect to sgsn1: $@";
$ftp->login('login', 'password')
or die "Cannot login", $ftp->message;
#$ftp->cwd("/")
#or die "Cannot change working directory ", $ftp->message;
$ftp->put("ip.htm")
or die "send failed ", $ftp->message;
$ftp->quit;
}
Комментариев нет:
Отправить комментарий