Как разобрать выход MIB с переключателя FC на OID?

Я пытаюсь найти конкретный адрес WWN из таблицы коммутаторов FC, чтобы получить идентификатор порта и изменить состояние администратора (у меня уже есть адрес WWN). Я использую SNMP, который возвращает таблицу WWN для него, и я получаю вывод, как это:

      In [39]: netsnmp.snmpwalk('.1.3.6.1.4.1.9.9.297.1.1.16.1.2',Version = 2,DestHost = 'lab-fc',Community = 'public')

      Out[39]:('P\x01C\x80\x18j\xc3\x88\x10\x08\x00\x01')

Как я могу преобразовать этот вывод в номер OID?

1 ответ

Библиотека netsnmp возвращает вам строку октетов, которая по сути является двоичной. Согласно определению Cisco идентификатора порта, первые 8 байтов являются WWN.

import netsnmp
import struct
import binascii

portid = netsnmp.snmpwalk('.1.3.6.1.4.1.9.9.297.1.1.16.1.2',Version = 2,DestHost = 'lab-fc',Community = 'public')
print ''.join(binascii.hexlify(i) for i in struct.unpack_from('cccccccc', s))

Выход

'50014380186ac388'

Это похоже на правильный WWN?

Другие вопросы по тегам