Perl:无法检查Net::Appliance::Session主机名的有效性
当我试图传递一个无效的主机名时,代码将进入一个无限循环Perl:无法检查Net::Appliance::Session主机名的有效性,perl,ssh,module,cisco,Perl,Ssh,Module,Cisco,当我试图传递一个无效的主机名时,代码将进入一个无限循环 my $s = Net::Appliance::Session->new({ personality => 'ios', transport => 'SSH', host => $ip }); sub download_config { my ($ip) = @_; my $s = Net::Appliance::Session->new({ personality => 'i
my $s = Net::Appliance::Session->new({
personality => 'ios',
transport => 'SSH',
host => $ip
});
sub download_config
{
my ($ip) = @_;
my $s = Net::Appliance::Session->new({
personality => 'ios',
transport => 'SSH',
host => $ip,
Timeout => 1
});
$s->set_global_log_at('debug'); # maximum debugging
eval {
$s->connect({ username => $username, password => $password });
$s->begin_privileged({ password => $enable_password });
#get hostname to set the file name
$hostname_result = $s->cmd('sh run | inc hostname');
$hostname_result =~ m/hostname (.*)/;
$hostname = $1;
#download the file
my @running_config = $s->cmd('sh run');
@running_config = @running_config[ 2 .. (@running_config -1)];#remove header and footer of the file
open(FH, "> temp/".$hostname.".txt") or die("Cannot open config file : $!");
print FH @running_config;
close FH;
$s->end_privileged;
};
if ($@) {
#when the login details are wrong
print redirect('../../na/unauthorised.html');
}
$s->close;
}
有没有办法克服这个错误
编辑:
以下是我的完整代码:
我使用子程序下载网络设备的配置文件。当我在下载配置中传入一个无效的IP地址时,它将进入一个无限循环
my $s = Net::Appliance::Session->new({
personality => 'ios',
transport => 'SSH',
host => $ip
});
sub download_config
{
my ($ip) = @_;
my $s = Net::Appliance::Session->new({
personality => 'ios',
transport => 'SSH',
host => $ip,
Timeout => 1
});
$s->set_global_log_at('debug'); # maximum debugging
eval {
$s->connect({ username => $username, password => $password });
$s->begin_privileged({ password => $enable_password });
#get hostname to set the file name
$hostname_result = $s->cmd('sh run | inc hostname');
$hostname_result =~ m/hostname (.*)/;
$hostname = $1;
#download the file
my @running_config = $s->cmd('sh run');
@running_config = @running_config[ 2 .. (@running_config -1)];#remove header and footer of the file
open(FH, "> temp/".$hostname.".txt") or die("Cannot open config file : $!");
print FH @running_config;
close FH;
$s->end_privileged;
};
if ($@) {
#when the login details are wrong
print redirect('../../na/unauthorised.html');
}
$s->close;
}
你确定吗
您是否使用主机名尝试了此示例代码
如果是,您可以创建RT票证或尝试联系作者
我检查了代码,没有发现任何(太)令人讨厌的东西
您好,您确定吗
您是否使用主机名尝试了此示例代码
如果是,您可以创建RT票证或尝试联系作者
我检查了代码,没有发现任何(太)令人讨厌的东西
关于,开发人员已经修复了该漏洞。开发人员已经修复了该漏洞。除了命令和需要启用密码之外,我的代码与示例非常相似。我在第一篇文章中复制了我的代码。我的代码与示例非常相似,只是命令不同,我需要一个启用密码。我在第一篇文章中复制了我的代码。