Как разобрать выход 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?