Как получить данные в perl скрипте из устройства NetPing по SNMP?

 

Для использования SNMP OID ресурсов в perl скриптах необходимо использовать модуль Net::SNMP, в деривативах Debian он находится в пакете libnet-snmp-perl. Подробнее об интерфейсе этого пакета можно почитать по ссылке: http://search.cpan.org/search?module=Net::SNMP
 
Вообще ссылка  http://search.cpan.org очень полезна при работе с perl скриптами :)
 
Ниже приведен пример скрипта на perl,  который читает значение температуры из устройства NetPing TS v2 с версией ПО DKSF 50.4.X.X-08:
 
#!/usr/bin/perl
                     
# Скрипт демонстрирует работу с SNMP
# При запуске должен напечатать примерно следующее:
# "Значение OID 1.3.6.1.4.1.25728.50.8.1017 = 22"
                                                                           
# "Большая тройка"
use strict;
use warnings;
use diagnostics;
                      
# Модуль для работы с SNMP
# В Debian и его деривативах это пакет libnet-snmp-perl
use Net::SNMP;
                     
# Что будем оправшивать
my $snmp_host = 'netping'; # IP или hostname
my $snmp_community = 'SWITCH'; # SNMP Community
my $snmp_oid = '1.3.6.1.4.1.25728.50.8.1017'; # OID для опроса
          
# Устанавливаем соединение
my $snmp_session = Net::SNMP->session(
-hostname => $snmp_host,
-community => $snmp_community,
-version => 1, # Явно указываем версию протокола
) or die('Не удалось соединиться!');
                                                    
# Пытаемся вычитать значение
# В -varbindlist должна быть ссылка на массив OID'ов
# В нашем примере только один OID
# В $result будет ссылка на хэш вида: OID => Значение
my $result = $snmp_session->get_request(
-varbindlist => [$snmp_oid],
) or die('Не удалось выполнить запрос!');
                                                             
# Печатаем результат
print "Значение OID $snmp_oid = $result->{$snmp_oid}\n";
                                                                                       
# Закрываем соединение
$snmp_session->close();
 
Загрузить этот скрипт в виде файла можно -  Здесь