Python easysnmp模块分两部分返回 SNMP OID:oid
和oid_index
. 例如,如果我走ipAddressIfIndex.ipv4
(.1.3.6.1.2.1.4.34.1.3.1
以数字形式)OID:
>>> from easysnmp import Session
>>> session = Session(hostname="r1", community='public', version=2, use_long_names=True, use_sprint_value=True)
>>> session.bulkwalk("ipAddressIfIndex.1")
[<SNMPVariable value='9' (oid='.iso.org.dod.internet.mgmt.mib-2.ip.ipAddressTable.ipAddressEntry.ipAddressIfIndex', oid_index='1.4.192.0.2.1', snmp_type='INTEGER')>,
/* rest of the output is removed for brevity */
>>>
..然后oid
是.iso.org.dod.internet.mgmt.mib-2.ip.ipAddressTable.ipAddressEntry.ipAddressIfIndex
(或.1.3.6.1.2.1.4.34.1.3
数字上)并且oid_id
是1.4.192.0.2.1
。我想将返回的oid
右移两个,以便. 这可能吗?我已尝试使用,并使用各种会话参数,例如or ,但我无法修改此行为。oid_id
192.0.2.1
session.bulkwalk("ipAddressIfIndex.1.4")
session.bulkwalk(("ipAddressIfIndex", "1.4"))
session.bulkwalk(".1.3.6.1.2.1.4.34.1.3.1.4")
use_long_names
use_enums
这显然不是一个大问题,因为我可以读取最后四个字段(例如类似的oid_index.split('.')[-4:]
内容),但也许有一个技巧可以在easysnmpoid
和返回之间移动“线”。oid_index