- NetPing
- >
- Блог
- >
- Примеры применения
- >
- Пример получения данных в perl скрипте из устройства NetPing по SNMP
Пример получения данных в perl скрипте из устройства NetPing по SNMP
Для доступа к SNMP переменным устройств NetPing в 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();

Цена: 2 340 руб.

Цена: руб.

Цена: 1 045 руб.

Цена: 42 500 руб.

Цена: 950 руб.

Цена: 15 730 руб.

Цена: 4 290 руб.

Цена: 6 200 руб.

Цена: 20 280 руб.

Цена: 20 280 руб.

Цена: 10 980 руб.

Цена: 8 580 руб.

Цена: 18 000 руб.

Цена: 27 300 руб.

Цена: 1 429 руб.

Цена: 3 354 руб.

Цена: 2 240 руб.

Цена: 1 400 руб.

Цена: 8 973 руб.

Цена: 15 700 руб.

Цена: 1 224 руб.

Цена: 6 700 руб.

Цена: 3 800 руб.