| |
Perl-Script zum Feststellen der ext.Router-Adrese per RIPv1
Um nicht gleich mit einem Netzwerkanalyzer oder über umständliche Aufrufe von Router-Konfiurations-Seiten an die externe Adresse zu kommen, können Sie dieses kleine Perl-Script einsetzen.
Voraussetzung ist jedoch, dass Ihr Router auch entsprechende RIP-Information versendet.
use strict;
use warnings;
use IO::Socket;
use Getopt::Std;
use vars qw($opt_f $opt_t $opt_h $Listener $cap);
getopts("f:t:h:");
if ( defined $opt_h ){&help()}
if ( defined $opt_f ) {
if (! defined $opt_t )
{
print "\nIf use option -f you must use also -t !!\n\n";
&help
}
else
{
if (($opt_t eq "0") or ($opt_t eq "1"))
{
&lisent()
}
else
{
print "\nWrong parameter, see help !!\n\n";
&help
}
}
}
else
{
&lisent()
}
sub help()
{
print <<"EOM" ;
*******************************************************************************
* *
* RIP-Scan v.1.00 (c)2004 by Andreas Ad Krueger *
* *
* Usage : appname [-f filename] [-t 0|1] *
* -f Path and filename for Save *
* -t 0 save only the last adress *
* -t 1 save all scanned adress *
* *
*******************************************************************************
EOM
exit
}
sub lisent()
{
print "*******************************************************************************\n";
print "* *\n";
print "* RIP-Scan v.1.00 (c)2004 by Andreas Ad Krueger *\n";
print "* *\n";
print "*******************************************************************************\n";
print "Now $0 is listen for RIP-Information on Port 520.\n";
if ( defined $opt_f ){print "Router-IP will be save to file : $opt_f\n";}
print "------------------------------------------------------------------------------\n";
if (!($Listener = IO::Socket::INET->new(LocalPort => 520, Proto => "udp")))
{print "Could not open socket...\n"; exit(1);}
while(1) {
my $hst = $Listener->recv($cap,65536,0);
my $ho1 = ord(substr($hst,4,4));
my $ho2 = ord(substr($hst,5,5));
my $ho3 = ord(substr($hst,6,6));
my $ho4 = ord(substr($hst,7,7));
my $mi1 = ord(substr($cap,8,8));
my $mi2 = ord(substr($cap,9,9));
my $mi3 = ord(substr($cap,10,10));
my $mi4 = ord(substr($cap,11,11));
print "Router $ho1.$ho2.$ho3.$ho4 tell ext.adress is : $mi1.$mi2.$mi3.$mi4\n";
if ( defined $opt_f ){&s_file("$mi1.$mi2.$mi3.$mi4\n")}
}
$Listener->close();
}
sub s_file()
{
if ( $opt_t == 0){open(FILE_OUT, ">$opt_f") || die "can't open: $!";}
if ( $opt_t == 1){open(FILE_OUT, ">>$opt_f") || die "can't open: $!";}
print FILE_OUT shift;
close(FILE_OUT);
}
|
Der Aufruf erfolgt dann ganz einfach über die Komandozeile.
Folgende Parameter sind möglich :
-f [Dateiname] wenn die Adresse in einer Datei vorgehalten werden soll.
-t [0|1] wobei 0 nur die letzte IP-Adresse vorhällt, 1 die Adresse fortlaufend Sichert.
|
Textfile
Perl-File
Win32-Exe
Stand : 31/05/2004
|
|
|
EventShop, Veranstaltungsplanung, lto Label, lto Etiketten, andreas krueger, andreas krüger, browsercap, berlin, free counter, euro tausch portal, euro münzen, euro muenzen, euro coins, haltestelle, proxy, router, netgear
|
|