PYSNMP是一个基于Python的SNMP(Simple Network Management Protocol)库,用于实现网络设备的监控和管理。它提供了一种简单的方式来读取和修改网络设备上的MIB(Management Information Base)对象。
针对无法读取自定义Windows MIB的问题,可能有以下几个原因和解决方法:
addMibSource()
方法来添加MIB文件的路径,例如:from pysnmp.hlapi import *
mibBuilder = builder.MibBuilder()
mibSources = mibBuilder.getMibSources() + (
builder.DirMibSource('path/to/mib/files'),
)
mibBuilder.setMibSources(*mibSources)
smidump
工具来验证MIB文件的正确性,例如:smidump -k -f python path/to/mib/files
snmptranslate
命令来验证MIB对象的名称,例如:snmptranslate -On -IR -Td -M+ALL -m ALL <MIB对象名称>
getCmd()
或nextCmd()
方法中指定SNMP协议版本,例如:errorIndication, errorStatus, errorIndex, varBinds = next(
getCmd(SnmpEngine(),
CommunityData('public', mpModel=1), # SNMPv2c
UdpTransportTarget(('demo.snmplabs.com', 161)),
ContextData(),
ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)))
)
总结起来,PYSNMP无法读取自定义Windows MIB可能是由于MIB文件路径配置错误、MIB文件格式错误、MIB对象名称错误、SNMP协议版本不匹配或设备访问权限问题所导致。在解决问题时,可以逐一排查以上可能的原因,并根据具体情况进行调整和修复。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云