Perl для системного администрирования



              

Протокол SNMP - часть 3


Важно обратить внимание на использование идентификаторов объекта (Object Identifiers, OID) вместо имен переменных. И Net::SNMP, и SNMP_Session.pm обрабатывают взаимодействие только по протоколу SNMP. Они не претендуют на выполнение каких-либо второстепенных задач, связанных с SNMP, например, анализ описаний SNMP MIB. Для выполнения этих действий нужно обратиться к другим модулям, таким как SNMP: :MIB: : Compiler или SNM.P_uЈt/.pm Майка Митчела (Mike Mitchell) для применения их с SNMP_Sess ion. pm (не путайте с модулем SNMP: : Utn

'. Вейна Маркетта (Wayne Marquette), который используется с модулем SNMP).

Для тех, кто предпочитает работать с текстовыми идентификаторами вместо численных, не создавая самостоятельно таблицу соответствия и не используя дополнительные модули, остается единственный вариант - обратиться к модулю SNMP, в котором есть встроенный анализатор MIB. Давайте рассмотрим таблицу ARP (Address Resolution Proto col, протокол преобразования адресов) на машине при помощи этого модуля:

use SNMP;

 в качестве ап'умен'ов задаются имя

Ssessio0 = new SNMP: : SessionfDestHosr -> $ARGVTO].

UseSprintValue => 1) die "Ошибка создания сессии: $SNMP: : Session. fr'orStr" unless

(defined Ssession)

n создаем структуру данных дли команды getnex4

$vars = new SNMP: :VarList([' iDNettoMediaNof Acc'-f-ss ]

['ipNetToMediaPhysAdd'eoF'}):

 получаем первую запись

($ip,$mac) = $session->getnext($vars):

die $session->{ErrorStr} if ($session->(ErrorStr});

# и все последующие

while (!$session->{ErrorStr} and

$$vars[0]-->tag eq "ipNetToMediaNetAddress"){

print "$ip -> $mac\n":

($ip,$mac) = $session->getnext($vars):

};

Вот как выглядит пример вывода этой программы:

192.168.1.70 -> 8:0:20:21:40:51

192.168.1.74 -> 8:0:20:76:7с:85

192.168.1.98 -> 0:сО:95:еО:5с:1с

Этот пример похож на предыдущий, где использовался модуль Net: : SNMP. Для выявления различий рассмотрим его подробнее:

use SNMP;




Содержание  Назад  Вперед