接受来自与请求目标端口不同的端口的通知响应

时间:2018-12-28 09:22:11

标签: pysnmp

以下代码在响应源端口为162时有效,但在响应源端口为动态时似乎引发“遇到未知的SNMP团体名称”异常。

它与CommunityData / UdpTransportTarget映射有关吗?有什么方法可以接受源端口与请求目标端口不同的响应?

from pysnmp.hlapi import *

def send_notification(host, community):
    errorIndication, errorStatus, errorIndex, varBinds = next(
        sendNotification(
            SnmpEngine(),
            CommunityData(community),
            UdpTransportTarget((host, 162)),
            ContextData(),
            'inform',
            NotificationType(
                ObjectIdentity('1.3.6.1.4.1.9.90000.1')
            ).addVarBinds(
            ('1.3.6.1.4.1.9.90000.1', Integer32(1)),
            ('1.3.6.1.4.1.9.90000.2', Integer32(2))
            )
        )
    )

    if errorIndication:
        print(errorIndication)
    elif errorStatus:
        print('%s: at %s' % (errorStatus.prettyPrint(), 
            errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
    else:
        for varBind in varBinds:
            print(' = '.join([x.prettyPrint() for x in varBind]))        

send_notification('127.0.0.1', 'mycomm')

0 个答案:

没有答案