2014-11-03 113 views
0

我试图从FC交换机表中找到特定的WWN地址以获取端口ID并更改管理状态(我已经有了WWN地址)。使用SNMP我 返回WWN表,它和我得到的输出是这样的:如何解析从FC交换机到OID的MIB输出?

 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

你尝试了什么? – Jolta 2014-11-03 12:24:39

+0

我想通过SNMP找到交换机上端口的物理位置与WWN(即模块2 /端口5或fc2/5)的相关性? – VadimG 2014-11-03 12:53:25

回答

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?