Hallo,
nun ist das Progrämmchen fertig.
Vielleicht hat einer Lust den Code etwas zu optimiern, weil es noch nicht zügig läuft.
Eigentlich wollte ich die Abfrage per SNMP machen, aber irgendwie kriege ich den Knoten nicht aus mein Gehirn.
Anfänger Achtung: Die Zeilenumbrüche sind nicht von mir.
Perlversion:
This is perl, v5.8.0 built for MSWin32-x86-multi-thread
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-2002, Larry Wall
Binary build 802 provided by ActiveState Corp. http://www.ActiveState.com
Built 00:54:02 Nov 8 2002
#!/usr/local/bin/perl -w
Mein Dank für bisherige Unterstützung geht an:
Alexander Fleischer aus www.wer-weiss-was
Bernhard Brosda aus www.wer-weiss-was
Vorläufiger Abschluss der Programmidee.
Situation:
Keine ISDN-Karte, sondern ein Bintecrouter
1. Aktivierung des Routers durch einen Ping
2. Stelle die neue IP fest, die vom ISP kommt.
3. Packe die Info in eine HTML-Seite und versende
diese autom. per FTP
4. Falls der Router Offline geht (ISP schalten
nach einiger Zeit (aber min. einmal pro Tag)
die Verbindung ab.
Das merkt dieses Prog. und geht wieder Online.
Zusatz: zähle die Hackversuche.
Viel Spass.
Für praktische Tipps Danke ich schon jetzt.
[email protected]
#FTP über Port 20
use warnings;
use strict;
use IO::Socket;
use Net:ing;
use Net::FTP;
my @abc;
my $STUNDE;
my $MINUTE;
my $hacker = 0;
my $IPADRESSE = 0;
my $server = „xxx.xxx.xxx.xxx“;
my $username = „yyyyyyyyyyyyy“;
my $password = „vvvvv“;
my $ftp;
my $datei = ‚d:/link.html‘;
my $ping = Net:ing->new(„icmp“);
$ping->ping(„200.200.200.200“,1);
$ping->close();
my $sock = IO::Socket::INET->new(LocalPort => ‚514‘, Proto => ‚udp‘) or die „socket: $@“;
while($sock->recv(my $message, ‚200‘))
{
if($message =~ /address is/)
{
$message =~/(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}),/;
$IPADRESSE = $1;
@abc = localtime;
$MINUTE = $abc[1];
$STUNDE = $abc[2];
open(HTML_IP, ‚> d:/link.html‘);
print HTML_IP 'Letzte Aktualisierung : ‚;
print HTML_IP „$STUNDE“;
print HTML_IP „:“;
print HTML_IP „$MINUTE“;
print HTML_IP ’
Goto‘;
print HTML_IP „$IPADRESSE“;
print HTML_IP " Hackversuche: $hacker";
print HTML_IP ‚‘;
close(HTML_IP);
$ftp = Net::FTP->new($server, Debug=>0) || die „Keine Verbindung mit $server.\n“;
$ftp->login($username, $password) || die „Fehler beim einloggen.\n“;
$ftp->put($datei) || die „Fehler beim uploaden von $datei auf $server.\n“;
$ftp->quit() || die „Fehler beim ausloggen von $server.\n\n“;
}
if(($message =~ /connection closed/) or ($message =~ /link up/))
{
$ping = Net:ing->new(„icmp“);
$ping->ping(„200.200.200.200“,1);
$ping->close();
}
if($message =~ /refuse/)
{
$hacker = ++$hacker;
}
print „\n$message“;
}