Python 如何将FC交换机的MIB输出解析为OID?

Python 如何将FC交换机的MIB输出解析为OID?,python,parsing,python-2.7,snmp,mib,Python,Parsing,Python 2.7,Snmp,Mib,我试图从FC交换机表中找到特定的WWN地址,以便获取端口ID并更改管理状态(我已经有了WWN地址)。 我使用返回WWN表的SNMP,得到如下输出: 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

我试图从FC交换机表中找到特定的WWN地址,以便获取端口ID并更改管理状态(我已经有了WWN地址)。 我使用返回WWN表的SNMP,得到如下输出:

      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编号?

netsnmp库将返回一个八进制字符串,它本质上是二进制的。根据端口ID的大小,前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吗?

我想通过SNMP查找交换机上端口的物理位置与WWN(即模块2/端口5或fc2/5)的相关性?