145 lines
4.1 KiB
Perl
145 lines
4.1 KiB
Perl
#!/bin/perl
|
|
use Net::Telnet();
|
|
use strict;
|
|
|
|
#my $IP="10.60.1.100";
|
|
my $IP="192.168.100.2";
|
|
|
|
# read config
|
|
#my @config=read_cisco_config($IP, "batman", "LTBTTTra25", "local", "prog");
|
|
my $version=read_devicetype($IP, "awisniewski", "peter", "local", "peter");
|
|
print "$version\n";
|
|
|
|
sub read_cisco_config {
|
|
my ($host, $user, $pass, $login, $enable) = @_;
|
|
my $t = new Net::Telnet (Timeout => 5, Prompt => '/#$/');
|
|
|
|
my $found_proper_method=0;
|
|
$t->errmode("return");
|
|
$t->open($host);
|
|
|
|
if ($t->waitfor('/>/i') == 1) {
|
|
# 1 wenn ok
|
|
# '' wenn n ok
|
|
$t->print("enable");
|
|
$t->waitfor('/password/i');
|
|
$t->print("$pass");
|
|
$t->waitfor('/#/i');
|
|
$found_proper_method=1;
|
|
}
|
|
if ($found_proper_method==0) {
|
|
if ($t->waitfor('/#/i') == 1) {
|
|
$found_proper_method=1;
|
|
}
|
|
}
|
|
if ($found_proper_method==0) {
|
|
if ($t->waitfor('/username/i') == 1) {
|
|
$t->print("$user");
|
|
$t->waitfor('/password/i');
|
|
$t->print("$pass");
|
|
|
|
if ($t->waitfor('/>/i') == 1) {
|
|
$t->print("enable");
|
|
$t->waitfor('/password/i');
|
|
$t->print("$enable");
|
|
}
|
|
if ($t->waitfor('/#/i') == '1') {
|
|
$found_proper_method=1;
|
|
}
|
|
}
|
|
}
|
|
if ($found_proper_method==0) {
|
|
if ($t->waitfor('/password/i') == 1 and $found_proper_method==0) {
|
|
$t->print("$login");
|
|
|
|
if ($t->waitfor('/>/i') == 1) {
|
|
$t->print("enable");
|
|
$t->waitfor('/password/i');
|
|
$t->print("$enable");
|
|
}
|
|
if ($t->waitfor('/#/i') == '1') {
|
|
$found_proper_method=1;
|
|
}
|
|
}
|
|
}
|
|
if ($found_proper_method==1) {
|
|
#$t->put(Timeout=>20);
|
|
$t->cmd("terminal length 0");
|
|
$t->waitfor('/#/');
|
|
(@config) = $t->cmd("show running");
|
|
}
|
|
else {
|
|
@config=("Kein Login möglich.");
|
|
}
|
|
return @config;
|
|
}
|
|
|
|
sub read_devicetype {
|
|
my ($host, $user, $pass, $login, $enable) = @_;
|
|
my $t = new Net::Telnet (Timeout => 2, Prompt => '/#[\s]*$/');
|
|
my @version;
|
|
my $devicetype;
|
|
|
|
my $found_proper_method=0;
|
|
$t->errmode("return");
|
|
$t->open($host);
|
|
|
|
if ($t->waitfor('/>/i') == 1) {
|
|
# 1 wenn ok
|
|
# '' wenn n ok
|
|
$t->print("enable");
|
|
$t->waitfor('/password/i');
|
|
$t->print("$pass");
|
|
$t->waitfor('/#/i');
|
|
$found_proper_method=1;
|
|
}
|
|
if ($found_proper_method==0) {
|
|
if ($t->waitfor('/#/i') == 1) {
|
|
$found_proper_method=1;
|
|
}
|
|
}
|
|
if ($found_proper_method==0) {
|
|
if ($t->waitfor('/username/i') == 1) {
|
|
$t->print("$user");
|
|
$t->waitfor('/password/i');
|
|
$t->print("$pass");
|
|
|
|
if ($t->waitfor('/>/i') == 1) {
|
|
$t->print("enable");
|
|
$t->waitfor('/password/i');
|
|
$t->print("$enable");
|
|
}
|
|
if ($t->waitfor('/#/i') == '1') {
|
|
$found_proper_method=1;
|
|
}
|
|
}
|
|
}
|
|
if ($found_proper_method==0) {
|
|
if ($t->waitfor('/password/i') == 1 and $found_proper_method==0) {
|
|
$t->print("$login");
|
|
|
|
if ($t->waitfor('/>/i') == 1) {
|
|
$t->print("enable");
|
|
$t->waitfor('/password/i');
|
|
$t->print("$enable");
|
|
}
|
|
if ($t->waitfor('/#/i') == '1') {
|
|
$found_proper_method=1;
|
|
}
|
|
}
|
|
}
|
|
if ($found_proper_method==1) {
|
|
#$t->put(Timeout=>20);
|
|
$t->cmd("terminal length 0");
|
|
$t->waitfor('/#/');
|
|
$t->cmd("terminal pager 500");
|
|
$t->waitfor('/#/');
|
|
(@version) = $t->cmd("show version");
|
|
|
|
## Hier erfolgt die Auswertung des Gerätetyps
|
|
}
|
|
else {
|
|
$devicetype="Kein Login möglich";
|
|
}
|
|
return $devicetype;
|
|
} |