snmpget不起作用,snmpgetnext会这样做

时间:2013-10-10 06:25:28

标签: snmp

我正在为所有打印机制作概述程序(我们是一家拥有大量行业打印机的印刷公司)。 与打印机通信的唯一方法是通过SNMP。由于我没有得到SNMP MIB的任何文档(这是非常糟糕的,因为我们使用自己的内置机器)我在最近几天搜索了任何可用的OID字符串,这些字符串正在使用我期望的结果。 其余的都是逆向工程。

我发现了许多有用的OID,我差不多完成了DLL,我正在研究(与WinAPI wsnmp32.dll合作),但现在我被困在了JobQueue OID上。

所以现在我的问题:) 以您的信息为例: JobQueue的ID是1202,作业ID是5495.如果我想获得应该在这个作业中打印的页面,我必须调用OID: .1.3.6.1.4.1.2699.1.1.1.3.1.1.7.1202.5495

到目前为止一切顺利。如果我用snmpget做这个,我得到一个“没有这样的实例”的回报。但肯定有一个例子。 我知道这肯定,因为我之前在实例上调用snmpgetnext(使用OID .1.3.6.1.4.1.2699.1.1.1.3.1.1.7.1202.5494),我得到一个9002的整数值,这是正确的,因为这是必须在此作业中打印的页数。 该实例正在工作并返回一个值...但仅当我之前在实例上调用snmpgetnext时。直接在5495上调用snmpget将无法正常工作。

我是否有任何关于调用snmpget的理解,所以我做错了? 希望任何人都可以帮助我:)。

祝你好运

1 个答案:

答案 0 :(得分:1)

如果您确定实例在WALK结果中可见,但无法通过GET操作访问。有可能的原因,

  • 这个代理人有缺陷。
  • 执行WALK时,作业仍在运行,但执行GET时,作业已完成,行已从表中删除。此表是动态的,因此其内容可能会随时间而变化。

要确认您点击了哪些案例,只需执行另一次WALK以查看GET后该行是否存在。