首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在单个事务中查询多个oid时,如何调查Pysnmp中每个OID的errorStatus

在单个事务中查询多个OID时,可以通过以下步骤调查Pysnmp中每个OID的errorStatus:

  1. 导入必要的库和模块:
代码语言:txt
复制
from pysnmp.hlapi import *
  1. 创建一个SNMP请求的生成器:
代码语言:txt
复制
def get_snmp_data(oids, host, community='public', port=161):
    for oid in oids:
        errorIndication, errorStatus, errorIndex, varBinds = next(
            getCmd(SnmpEngine(),
                   CommunityData(community),
                   UdpTransportTarget((host, port)),
                   ContextData(),
                   ObjectType(ObjectIdentity(oid)))
        )
        yield oid, errorStatus, varBinds
  1. 调用生成器并处理结果:
代码语言:txt
复制
oids = ['1.3.6.1.2.1.1.1.0', '1.3.6.1.2.1.1.2.0', '1.3.6.1.2.1.1.3.0']
host = '192.168.1.1'

for oid, errorStatus, varBinds in get_snmp_data(oids, host):
    if errorStatus:
        print(f"Error retrieving data for OID {oid}: {errorStatus.prettyPrint()}")
    else:
        for varBind in varBinds:
            print(f"OID: {varBind[0]}\nValue: {varBind[1]}")

在上述代码中,我们定义了一个get_snmp_data函数,它接受OID列表、主机地址、社区字符串和端口作为参数。该函数使用getCmd方法发送SNMP请求,并返回每个OID的errorStatus和varBinds。然后,我们通过调用生成器来获取每个OID的结果,并根据errorStatus判断是否出现错误。如果有错误,我们打印错误信息;否则,我们打印每个OID的值。

请注意,这只是一个示例代码,你可以根据实际情况进行修改和扩展。此外,对于Pysnmp中的每个OID,你可以进一步研究其概念、分类、优势和应用场景,以及腾讯云提供的相关产品和产品介绍链接地址。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券