Жигалов Иван писал(а):
a как по snmp определелить hardware version коммутатора DES-3010G?
В свое время нарисовал скрипт определения этих данных по telnet на perl'е. написано давно и возможно не оптимально. но т.к. оно работает без сбоев, то не переписываю.
Код:
sub get_model_dlink_3xxx() {
my $ip = $_[0];
unlink "./login/login_$ip.log";
# Смотрим приветствие по Telnet. пишется в файл
my $telnet=0;
my $file;
my $exp = Expect->spawn("telnet $ip");
$exp->log_file("./login/login_$ip.log");
$exp->debug(0);
$exp->log_group(0);
$exp->log_user(0);
$exp->log_stdout(0);
$exp->expect(5, [ 'Copyright' => sub { $telnet = 1; break; } ]);
$exp->hard_close();
# Открываем файл и вытягиваем модель коммутатора и версию прошивки
open FILE, "<./login/login_$ip.log" or die $!;
my $i=0;
while (<FILE>) {
if ($i > 3) { $file.=$_; }
$i++;
}
close FILE;
$file =~ m/\d\.\d{1,2}(\.|-)B?\d{1,3}/;
my $real_fw = $&;
$file =~ m/D(E|G)S-\d{4}(G|S|-10|-28)?/;
my $real_model = $&;
# print ("host: ".$ip."\nreal_model: ".$real_model."\t real_fw: ".$real_fw."\n");
if ($telnet) {return ($real_model,$real_fw); }
else { return (0,0); };
}