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";
while (<@check>)
{
# match an interface number e.g. 0/0/0, 0/1/0, etc
if (m^\G[0-9]/[0-9]/[0-9]^)
{
$interface = $_;
$T1Count++;
$T1List = join ($T1List,$interface,"\n");
}
# check if the interface is a PRI (pri-group timeslots 1-24)
if (m^\Gpri-group^)
{
$PRICount++;
$PRIList = join ($PRIList,$interface,"\n");
}
}
if ($T1Count > 0)
{
print "T1 Controller Summary:\n\n";
print "$T1Count total T1 interfaces\n";
print $T1List;
print "$PRICount total voice PRI(s)\n";
print $PRIList;
}
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:
1 total T1 interfaces
0/0/0
1 total voice PRI(s)
0/0/0
####
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