use Net::Ping; use Net::Telnet::Cisco; use Getopt::Long; my $host = ""; my $interface = ""; my $PRIList = ""; my $T1List = ""; my $T1Count = 0; my $PRICount = 0; GetOptions("host:s" => \ $host); if (!$host) { print "usage: perl regexp_test.pl --host=(IPAddress)"; exit; } my $p = Net::Ping->new(); if ($p->ping($host)) { print "\nDevice is online, connecting...\n\n"; my $session = Net::Telnet::Cisco->new(Host => $host); $session->login('user', 'password'); $session->cmd("term len 0"); print "Retrieving T1 controller details...\n\n"; my @check = $session->cmd("sh run | s controller T1"); print "@check\n"; for(@check) { # match an interface number e.g. 0/0/0, 0/1/0, etc if (m^([0-9]/[0-9]/[0-9])^) { $interface = $1; $T1Count++; $T1List = $T1List . $interface . "\n"; } # check if the interface is a PRI (pri-group timeslots 1-24) if (m^pri-group^) { $PRICount++; $PRIList = $PRIList . $interface . "\n"; } } if ($T1Count > 0) { print "T1 Controller Summary:\n\n"; print "$T1Count total T1 interfaces\n"; print "$T1List\n"; print "$PRICount total voice PRI(s)\n"; print "$PRIList\n"; } else { print "No T1 interfaces found"; } $session->close; } else { print "\nDevice OFFLINE!! Connection aborted!!\n\n"; } $p->close(); #### C:\perl scripts>perl regexp_test.pl --host 10.22.49.19 Device is online, connecting... Retrieving T1 controller details... controller T1 0/0/0 framing esf linecode b8zs cablelength long 0db pri-group timeslots 1-24 controller T1 0/0/1 framing esf linecode b8zs cablelength long 0db controller T1 0/1/0 framing esf linecode b8zs cablelength long 0db controller T1 0/1/1 framing esf linecode b8zs cablelength long 0db T1 Controller Summary: 4 total T1 interfaces 0/0/0 0/0/1 0/1/0 0/1/1 1 total voice PRI(s) 0/0/0