修改
我觉得这很愚蠢。我刚才注意到它在CLI上返回了oid.1。由于我在oid末尾没有.1,PHP只是出错了。
这就是我所拥有的。我试图通过SNMP来轮询思科设备以收集有关温度,CPU使用率,接口使用情况等的信息。
操作系统:CentOS 6.5 64位 PHP:5.4.28 NET-SNMP支持:已启用 NET-SNMP版本:5.5 PHP SNMP版本:0.1我能够执行以下操作并获得预期的结果。
snmpwalk 10.0.0.1 -c communityname -v 2c .1.3.6.1.4.1.9.9.109.1.1.1.1.5 2>/dev/null
这将以
返回CISCO-PROCESS-MIB::cpmCPUTOtal5min.1 = Guage32: 1
但是,如果我尝试通过PHP运行以下内容,我就不会得到相同的结果。
$cpu = snmp2_get("10.0.0.1", "communityname", ".1.3.6.1.4.1.9.9.109.1.1.1.1.5");
相反,它输出了这个。
snmp2_get(): Error in packet at 'SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.5': No Such Instance currently exists at this OID
我不知道自己错过了什么,说实话,我可能正在寻找错误的东西,让我朝着我需要的方向前进。我不明白为什么PHP一直试图使用SNMPv2-SMI mib而不是CISCO-PROCESS-MIB。
非常感谢任何帮助。
谢谢!
答案 0 :(得分:0)
我觉得这很愚蠢。我刚才注意到它在CLI上返回了oid.1。由于我在oid的末尾没有.1,所以PHP只是出错了。