SNMP(Simple Network Management Protocol)是一种用于网络设备管理的协议。它允许网络管理员监控和管理网络设备,如路由器、交换机、服务器等。SNMP通过发送请求和接收响应来获取设备的状态信息。
OID(Object Identifier)是SNMP中用于唯一标识管理对象的标识符。每个OID都对应一个具体的设备属性或配置项。
snmpwalk
命令来列出设备上的所有OID,以便确认。snmpwalk
命令来列出设备上的所有OID,以便确认。以下是一个使用Python的pysnmp
库来执行SNMP GET请求的示例代码:
from pysnmp.hlapi import *
errorIndication, errorStatus, errorIndex, varBinds = next(
getCmd(SnmpEngine(),
CommunityData('public'),
UdpTransportTarget(('192.168.1.1', 161)),
ContextData(),
ObjectType(ObjectIdentity('1.3.6.1.2.1.1.1.0')))
)
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]))
通过以上方法,您应该能够诊断并解决SNMP pass
命令返回OID错误的问题。如果问题仍然存在,建议进一步检查设备的日志和配置文件,以获取更多线索。
领取专属 10元无门槛券
手把手带您无忧上云