Perl统计交换机下联设备ip和mac地址

#!/usr/bin/perl  
#Version 0.2  
#2011.5.31  
 use Encode;  
 use Net::Telnet::Cisco;  
 use Spreadsheet::WriteExcel;  
  open HOST,"</home/host.txt";  
  open IP,"</home/iplist.txt";  
  chomp(my @host=<HOST>);  
  close HOST;  
  chomp(my @ip=<IP>);  
  close IP;  
my $xls = Spreadsheet::WriteExcel->new( "/home/Switch.xls" );  
  foreach $h (@host){  
        print $h;  
        my $session = Net::Telnet::Cisco->new(Host => "$h");  
        my $hContent = $xls->add_worksheet( "Switch_$h" );  
        $HH=0;  
        $session->login('User', 'Pwd');  
        # Enable mode  
        if ($session->enable("EnPWD") ) {  
             print "Cennect is ok\n";  
           } else {  
             warn "Can't enable: " . $session->errmsg;  
           }  
        foreach $i (@ip){  
              $hContent->set_column(0,100,15);  
              my $contentStyle = $xls->add_format();  
              $contentStyle->set_size( 10 );  
              $contentStyle->set_bold();            #设置字体为粗体  
              $contentStyle->set_align( 'center' ); #设置单元格居中  
              $contentStyle->set_text_wrap();       #是否回车换行  
              $contentStyle->set_color('black');    #设置单元格前景色为红色  
             my @outputing = $session->cmd("ping $i");  
             my @arp = $session->cmd("show ip arp | in $i");  
             my @result=split( ' ' , $arp[0] );  
             my @mac = $session->cmd("show mac-address-table dy add $result[3]");  
             my @IPlist = split( ' ' , $mac[5] );  
             if ($IPlist[3]=~/.*\/.*/){  
                $HH+=1;  
                $hContent->write("A$HH", decode( 'gb2312', "$i" ), $contentStyle );  
                $hContent->write("B$HH", decode( 'gb2312', "$IPlist[1]" ), $contentStyle);  
                $hContent->write("C$HH", decode( 'gb2312', "$IPlist[3]" ), $contentStyle);  
              }  
          }  
         $session->close;  
   }  
$xls->close();  
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值