加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

利用Perl中的Cisco模块登录公司交换机

发布时间:2020-12-15 23:51:08 所属栏目:大数据 来源:网络整理
导读:发现CPAN中有个CISCO模块,恰好能满足登录公司交换机,进行各类指令操作,如下: #!/usr/bin/perl -w use strict; use Net::Telnet; use Net::Telnet::Cisco; use Net::Ping; my $welcomeMsg = ?"******************************************* 交换机设备登

发现CPAN中有个CISCO模块,恰好能满足登录公司交换机,进行各类指令操作,如下:

#!/usr/bin/perl -w use strict; use Net::Telnet; use Net::Telnet::Cisco; use Net::Ping; my $welcomeMsg = ?"******************************************* 交换机设备登录工具 发布时间:2012-10-14 12:00 ******************************************************n"; print $welcomeMsg; #注意,$prompt是登陆后的命令提示符,如果匹配不上,脚本将会timeout my $username = 'who'; my $password = 'who'; my $prompt ? = '/.+[>#]$/'; print "请输入检测设备IP地址,多个IP请按分号或逗号隔开:n"; my $hostlist = <STDIN>; chomp($hostlist); my @hostArray = split /[;,]/,$hostlist; for my $host (@hostArray) { $host =~s#s+##g; if ($host !~ m/(d+.){3}d+/) { print "IP地址${host}输入不正确,登录下一台设备或退出工具!n"; next; } #先看是否能ping通设备,主机连通性测试,5次连接,连接不上则进入下一台设备登录或退出程序 my $pingcnt = 1; my $p ? ? ? = Net::Ping->new('icmp'); while ($pingcnt <= 5) { if ($p->ping($host)) { print "$host is reachable.n"; last; } else { print "$host is unreachablen"; $pingcnt++; } } if ($pingcnt > 5) { print "$host ping 不通,进入下一台设备登录或退出工具n"; next; } my $session = Net::Telnet::Cisco->new( ? ? ? ? ? ? ?Timeout => 15,? ? ? ? ? ? ?Prompt => $prompt ? ? ? ? ? ? ?); $session->open($host); print "$host连接成功n" if $session->login($username,$password); sleep(5); #加入5s延迟的作用是为了使设备telnet服务能及时响应 $session->enable('enable'); } 利用这个模块,登录交换机之后就可以配置,诊断收集相关信息了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读