2014-11-03 126 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?