我试图从FC交换机表中找到特定的WWN地址,以获取端口ID并更改管理状态(我已经拥有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号?
答案 0 :(得分:1)
netsnmp库返回一个八位字节字符串,它本质上是二进制的。根据端口ID的Cisco definition,前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吗?