snmpget 命令检索打印机位置

标签 snmp

我需要从 SNMP HP 打印机 jetleg 代理检索 HP 打印机信息。我可以使用 snmpget 命令检索打印机计数器:

snmpwalk -v1 -c public 10.0.0.110 mib-2.43.10.2.1.4.1.1 
SNMPv2-SMI::mib-2.43.10.2.1.4.1.1 = Counter32: 16101

但是现在我需要从 SNMP 代理获取打印机位置,有人知道如何做到这一点吗?请指教。

最佳答案

对该 OID 进行一些谷歌搜索后发现它属于 MIB 模块“Printer-MIB”,该模块由 IETF 作为 RFC 3805 发布。您可以在此处阅读: https://www.rfc-editor.org/rfc/rfc3805

它包含许多有关打印机的有趣变量,包括打印机中每个“标记”的计数器,正如您所注意到的。 在激光打印机上,计数器单位可能是“打印印数”,但也要注意检查 .1.3.6.1.2.1.43.10.2.1.3.1.1 的值,因为它定义了计数单位。以下任一单位都是有效单位!

3=tenThousandthsOfInches(3)
4=micrometers(4)
5=characters(5)
6=lines(6)
7=impressions(7)
8=sheets(8)
9=dotRow(9)
11=hours(11)
16=feet(16)
17=meters(17)

如果您要查找墨粉/墨水的剩余量,请检查 prtMarkerSuppliesTable,特别是 prtMarkerSuppliesLevel、.1.3.6.1.2.1.43.11.1.1.9。

现在,位置是一个变量,不会出现在 Printer-MIB 中。您最好查看 SNMPv2-MIB 中的变量 .1.3.6.1.2.1.1.6 (sysLocation)。

"The physical location of this node (e.g., 'telephone closet, 3rd floor'). If the location is unknown, the value is the zero-length string."

当然,只有在以下情况下才会设置此变量

  1. HP 决定在其打印机中实现 SNMPv2-MIB(这很有可能,尽管我没有机会检查)
  2. 安装打印机的人员花时间将 sysLocation 的值设置为有用的值。这通常在打印机的前面板上完成,但也可以通过 SNMP 设置。

更新: 尝试进行完整的 SNMP 遍历。即获取MIB的所有变量。

snmpwalk -v1 -Ont -c public 10.0.0.110 

(-Ont 标志禁用 MIB 名称解释并在输出中为您提供数字 OID。)

然后应该很容易找到变量.1.3.6.1.2.1.1.6。它将附加 .0 实例 OID,表明它是一个标量值,因此它实际上看起来像 “.1.3.6.1.2.1.1.6.0 = 4楼打印室”

如果输出很大,请尝试使用 grep(如果有)。

同样,如果它没有设置为任何有用的内容,您就必须设置它(或让打印机工作人员设置它)。如果您无法弄清楚,请检查打印机手册,或者联系 HP 支持人员以获取有关如何持久设置变量的详细信息。

关于snmpget 命令检索打印机位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23440106/

相关文章:

java - snmpwalk -m 与 snmp4j

linux - SNMP 设备仿真

jboss - jboss snmp 适配器(snmp 代理)可以扩展以支持我定义的 MIB 吗?

schema - 存储SNMP数据的数据库方案

python - 如何在 "demo.snmplabs.com"服务器上查找正在运行的进程?

Python OpenWRT crontab

c - SNMP如何获取代理并为其设置值

.net - 使用 Windows 事件日志有哪些选项?

snmp - 通过代理删除 snmp 中的用户

java - 通过 SNMP 监控 JRockit JVM