![透過 SNMP HP Laserjet 查詢總頁數](https://rvso.com/image/515660/%E9%80%8F%E9%81%8E%20SNMP%20HP%20Laserjet%20%E6%9F%A5%E8%A9%A2%E7%B8%BD%E9%A0%81%E6%95%B8.png)
我被要求掌握我們工作中 100 多台印表機的總頁數。所有這些都是 HP 雷射機或某種類型的商務噴射機,並且絕大多數透過某種形式的 HP JetDirect 網卡/交換機進行連接。經過幾個小時的輸入 IP 位址並將相關數字複製並貼上到 Excel 中之後,我現在被要求每週執行一次此操作。這讓我覺得一定有更簡單的方法,身為 IT 專業人員,我絕對可以找到一些節省時間的方法來解決這個問題。
我只想說,在嘗試讓 SNMP 為我工作一天左右之後,我現在感覺不太專業!
據我了解,第一件事是在印表機上啟用 SNMP。完畢。接下來我需要一些東西來查詢 SNMP 位元。我決定採用開源和免費,這裡有人推薦 net-snmp 作為一個不錯的工具(我想剛剛將印表機添加為 SolarWinds 中的節點,但顯然我們的許可證有些緊張)。接下來我需要 MIB 的名稱。為此,我相信 HP-LASERJET-COMMON-MIB 中包含正確的資訊。下載這個並加入到 net-snmp 中。現在我需要 OID,我相信經過多次搜索後它是印刷媒體單面計數(我們沒有雙面印表機,至少我們對此感興趣)。執行以下命令會產生以下令人沮喪的輸出:
snmpget -v 2c -c public 10.168.5.1 HP-LASERJET-COMMON-MIB:.1.3.6.1.2.1.1.16.1.1.1
(OID 源自於運行:
snmptranslate -IR -On printed-media-simplex-count
Unlinked OID in HP-LASERJET-COMMON-MIB: hp ::= { enterprises 11 }
Undefined identifier: enterprises near line 3 of C:/usr/share/snmp/mibs/HP-LASER
JET-COMMON-MIB..txt
.1.3.6.1.2.1.1.16.1.1.1 )
Unlinked OID in HP-LASERJET-COMMON-MIB: hp ::= { enterprises 11 }
Undefined identifier: enterprises near line 3 of C:/usr/share/snmp/mibs/HP-LASER
JET-COMMON-MIB..txt
HP-LASERJET-COMMON-MIB:.1.3.6.1.2.1.1.16.1.1.1:
我是不是完全找錯樹了?我的目標是將其全部編寫為腳本,將所有印表機的 IP 位址輸出到一個文件,然後將其放入 Excel 中,供我的領主和主人在閒暇時消化。我有一種感覺,我使用了錯誤的 MIB 或所述 MIB 中的錯誤 OID(或兩者)。有人對我有任何指示嗎?或者我應該放棄並返回單獨導航每個印表機網頁(希望不是)。
答案1
嗯,這相當奇怪——我以為資訊是透過 SNMP 公開的。然而,對我們的一台 P4515 進行快速 snmpwalk 僅顯示使用目前安裝的定影器列印的頁數。要查看透過 snmp 公開的所有信息,我執行了以下操作:
snmpwalk -Cc -v 1 -c public ipaddress
如果目前安裝的定影器上列印頁面的 OID 有任何用處,則為:
2.43.10.2.1.4.1.1
答案2
標準「總頁數」位於 1.3.6.1.2.1.43.10.2.1.4.1.1
不同型號使用不同的 OID 來獲取詳細信息,例如傳真/複印/打印/雙面/彩色/黑白/...的頁數。
答案3
恐怕我無法提供 MIB 方面的幫助,但您可以使用 PowerShell 來減輕從印表機網頁上抓取值的麻煩。應該可以修改下面的範例來執行您需要的操作:
Perl/Python 也有 Web 抓取模組(如果可以的話)。