java - 如何通过SNMP查找打印机计数器

标签 java printing snmp oid

我目前正在进行一个项目,涉及通过 SNMP 从打印机获取信息。现在,我一直在测试/使用的打印机是 Lexmark X950。

我一直在努力解决的一个问题是,我希望这个程序也适用于 HP 或 Kyocera 或 Brother 打印机,但我使用的 OID 似乎只适用于 Lexmark。

以下是我使用的一些 OID:

<OID type="counter">
    <name>Count total printed</name>
    <OIDN>1.3.6.1.4.1.641.2.1.5.1</OIDN>
</OID>
<OID type="counter">
    <name>count total printed since last boot</name>
    <OIDN>1.3.6.1.2.1.43.10.2.1.5</OIDN>
</OID>
<OID type="counter">
    <name>count total printer black</name>
    <OIDN>1.3.6.1.4.1.641.2.1.5.2</OIDN>
</OID>
<OID type="counter">
    <name>count total printed color</name>
    <OIDN>1.3.6.1.4.1.641.2.1.5.3</OIDN>
</OID>
<OID type="counter">
    <name>count total copied black</name>
    <OIDN>1.3.6.1.4.1.641.2.1.5.7</OIDN>
</OID>

正如您在此处看到的,我主要将 1.3.6.1.4.1.641 用于我的 OID,但它们仅适用于 Lexmark。是否有更通用的 OID 可用于查明有多少页以黑色/彩色打印、以黑色/彩色复印、以黑色/彩色传真并以不同方式(单面、双面、平板)扫描,我基本上可以用于任何打印机吗?

问候。

最佳答案

简短的回答是“不”。详细信息将因供应商而异。

您可以对多台不同的打印机执行 snmpwalk 并比较数据以查看是否有您想要报告的任何共同属性。

每台打印机都应该有一个打印机特定的 MIB,它将列出您可以在打印机上查询的所有详细信息 - 因此,而不是从特定的 MIB 值开始,如果您扫描 MIB 并搜索有趣的值,您可以找到正确的为每个平台轮询的 OID。

一开始你可以轮询sysDescr mib条目,并确定设备是否是brother/epson/canon/hp打印机等。

关于java - 如何通过SNMP查找打印机计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22655567/

相关文章:

java - Eclipse - 为什么不自动建议 .class?

firefox - PDF.js 中的 mozdisallowselectionprint 属性有什么作用?

python - 打印用户输入的 "cascade"个字符?

java - 当 net-snmp get 返回响应事件时,为什么 snmp 代理不接受 snmp4j get 上的请求

java - ObjectInputStream 适用于 MySql,但不适用于 sqlite

java - 在 java 中将 html + css(打印媒体)转换为 msword

java - 避免 getfield 操作码

javascript - 有人熟悉 wz_jsgraphics 和 setPrintable 选项吗?

open-source - 适用于嵌入式设备的优秀开源 SNMP 代理

SNMP - 一次调用即可获得完整的 Mac 表