错误Telnet Zyxel,华为

时间:2014-04-08 23:10:58

标签: perl

#!/usr/bin/perl
use strict;
use warnings;
use Text::CSV; 
use Net::Telnet ();

my ($i, $archivo_final); 
my $csv = Text::CSV->new({ sep_char => ',' }); 
my $file    = $ARGV[0] or die "Necesito un fichero CSV como parámetro\n"; 

open (my $data, '<', $file) or die "No puedo abrir el fichero $file $!\n";
while (my $line = <$data>){
chomp $line;
if( $csv->parse($line)){
    my @fields = $csv->fields();
    my $telnet = Net::Telnet->new(
        Timeout    => 5,
        Errmode    => 'return',
        Host       => "$fields[1]",
        Port       => 23,           
        Binmode    => 0,               
    );          
    if(!$telnet){
        print "Host Inaccessible: $fields[1]\n";
        $archivo_final = "$fields[0],$fields[1],$fields[2]";
        open(INC,">>Inaccessible.csv");
        print INC $archivo_final."\n";
        close(INC);
        $i++;                   
        next;
    }elsif($telnet){
        if($telnet->waitfor('/password[: ]*$/i')){
                print "Host Zyxel: $fields[1]\n";               
            $telnet->print('soy_cgrc_admin');
            $telnet->waitfor('/:/');    
            $telnet->cmd('99');          # ejemplo de ejecución de un comando
            $archivo_final = "$fields[0],$fields[1],$fields[2]";
            open(ZYX,">>ZyxelHost.csv");
            print ZYX $archivo_final."\n";
            close(ZYX);
            $i++;               
        }else{
            print "Other Host: $fields[1]\n";
            $archivo_final = "$fields[0],$fields[1],$fields[2]";
            open(OTH,">>OtherHost.csv");
            print OTH $archivo_final."\n";
            close(OTH);
            $i++;                   
        }           
    }       
    $telnet->close; 
}else{
    warn "la linea no se ha podido procesar: $line\n";
}
}
close($data);

你好,我可以修改我的脚本并输入路由器。通过这个修改,我只能阅读Zyxel设备,这个提示是“:”

我也想读华为路由器,所以提示也是或[CD44444_IB000000]。

Teldat路由器,提示符为“*”

感谢

0 个答案:

没有答案