#!/usr/bin/perl -w use strict; use Net::Telnet::Cisco; my $input = ''; my ($prematch,$match); use constant HOST => 'TERMINAL SERVER'; use constant USER => 'USER'; use constant PASS => 'PASSWORT'; use constant COMMAND => 'ts_menu'; use constant TIMEOUT => '60'; # Wartezeit 60 Sekunden use constant PROMPT => '/[# >]*$/'; my $glob; my $IOSversion; my $platform; use constant ROUTER_PROMPT => '/^\s*[\w().-]*[\$#>]\s?(?:\(enable\))?\s*$/'; #Standart Cisco Prompt ##################################################### # #Anmeldung an Cyclades Terminal Server # ####################################################### my $telnet = Net::Telnet::Cisco->new( Host =>HOST, Input_log => 'input.log', Errmode =>'die', Prompt => '/[\$%#>:] $/', Timeout => TIMEOUT); $telnet->login(USER,PASS); $telnet->input_log(*stdout); $telnet->cmd ( String => COMMAND, Timeout => TIMEOUT, Prompt => '/[\$%#>:] $/', # Errmode =>'die', # Errmode =>'return', ); chomp(my $Port = ); ################################################# # #Auswahl Port des TS # ################################################# $telnet->cmd ( String => $Port, Timeout => TIMEOUT, Prompt => '/\n/', # Errmode =>'die', # Errmode =>'return', ); ################################################ ok $telnet->waitfor( match =>'/\n/'); $telnet->cmd ( String => '', Timeout => TIMEOUT, Prompt => ROUTER_PROMPT, # Errmode =>'die', Errmode =>'return', ); ############################################### # # Router/Switch # ############################################### $telnet->waitfor( match =>'/[# >]*$/'); $telnet->cmd('terminal length 0'); # Enable mode $telnet->waitfor( match =>'/[# >]*$/'); $telnet->cmd('enable'); ################################################ my @testvar = $telnet->cmd("sh ver"); print "Test\n"; #$telnet->waitfor( match =>PROMPT); #$telnet->normalize_cmd; #$telnet-> cmd (String => $Version, # Prompt => PROMPT, # ); my @sh_ver = $telnet->cmd('show ver'); &error_check($telnet); foreach (@sh_ver) { if ($_ =~ /^IOS.*Version ([\w.()]+)/) { print "Version found: $1\n"; $IOSversion = $1; $IOSversion =~ s/[).]//g; $IOSversion =~ s/\(/-/; } if ($_ =~ /^cisco (\w+\d+)/) { print "Platform found: $1\n"; $platform = $1; } if ($_ =~ /Catalyst (\d+)/) { $platform = "Catalyst_" . $1; } } $platform = $platform . "_$IOSversion"; ################################################ $telnet->close;