SNMP代理sid处oid的动态增量

2024-05-14 22:48:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用两个不同的上下文名称实现snmp代理。 下面是我如何尝试实现我的代理端。在实现之初,我遇到了一些错误,比如

Error: OID not increasing: SNMPv2-SMI::dod
 >= SNMPv2-SMI::dod

我从银行得到了答案

Error: OID not increasing: SNMPv2-SMI::dod, How to increase OID?

所以我修改了我的代码

class sample ():
    def readVars (self , varBinds, acInfo=(None, None)):
            retItem = []
            for ov in varBinds:
                if str(ov[0]) == '1.3.6.1.4.1.12345.1.1.1.0':
                    retItem.extend([(ov[0], v2c.OctetString('%s' % primary_keys['value1']))])
                elif str(ov[0]) == '1.3.6.1.4.1.12345.1.1.2.0':
                    retItem.extend([(ov[0], v2c.OctetString('%s' % primary_keys['value2']))])
                . 
                .
                .
                .

    def readNextVars (self , varBinds, acInfo=(None, None)):
            retItem = []
            for ov in varBinds:
                if str(ov[0]) == '1.3.6.1.4.1.12345.1.1.1.0':
                    retItem.extend([('1.3.6.1.4.1.12345.1.1.2.0', v2c.OctetString('%s' % primary_keys['value2']))])
                elif str(ov[0]) == '1.3.6.1.4.1.12345.1.1.2.0':
                    retItem.extend([('1.3.6.1.4.1.12345.1.1.3.1.1.0', v2c.OctetString('%s' % item_list['value3']]))])
                .
                .
                .
                .
            else:
                    retItem.extend([('1.3.6.1.4.1.44555.1.1.1.0', v2c.OctetString('%s' % primary_keys['value1']))])
            return retItem

我在这样的背景下注册了这个类

mibTreeA = sample()

self._snmpContext.registerContextName(v2c.OctetString('ContextOne'), mibTreeA)  
self._snmpContext.registerContextName(v2c.OctetString('ContextTwo'), mibTreeA)  

但问题是我想在这方面使用50多个oid,所以我想让它动态化,任何建议或例子都可以。请询问您是否需要更多的细节


Tags: selfnonekeyssmiovoidextendprimary

热门问题