2012-06-24 33 views
0

我一直試圖從工作中的打印機獲取警報代碼,以查看究竟發生了什麼,但每次發送SNMP查詢時都不會返回任何結果。我正在使用SimpleSNMP引用。SNMP prtAlertCode

打印機是佳能iR-ADV C5045。

這是我如何調用該函數:

Dim strAlertCode As String = SNMPQueryGet("1.3.6.1.2.1.43.18.1.1.7") 

這是函數:

Private Function SNMPQueryGet(ByVal OID As String) 
    Dim strResult As String = "True" 

    Dim host As String = "192.168.1.202" 
    Dim community As String = "public" 
    Dim requestOid() As String 
    Dim result As Dictionary(Of Oid, AsnType) 
    requestOid = New String() {OID} 
    Dim snmp As SimpleSnmp = New SimpleSnmp(host, community) 
    If Not snmp.Valid Then 
     strResult = True 
    End If 
    result = snmp.Get(SnmpVersion.Ver1, requestOid) 
    If result IsNot Nothing Then 
     Dim kvp As KeyValuePair(Of Oid, AsnType) 
     For Each kvp In result 
      If Not kvp.Key.ToString() = "" Then 
       strResult = kvp.Value.ToString() 
      Else 
       strResult = "True" 
      End If 
     Next 
    Else 
     strResult = "True" 
    End If 

    Return strResult 
End Function 

編輯

打印機MIB PDF:https://dl.dropbox.com/u/19613123/MIB_iR-ADV-C5051-C5045-C5035-C5030_v120_non.pdf

+0

什麼版本的SNMP的打印機是否使用? 另外,你確定點分隔的數字是正確的嗎?運行一個數據包嗅探器也看它是否發回任何東西。 –

+0

該設置表示它使用「SNMP v.1」。如果需要,我可以打開「SNMP v。3」。我相信點號分隔是正確的。什麼是好的數據包嗅探器?多年來我沒有做過那樣的事情。 – Rambomst

+0

Wireshark是一個很好的數據包嗅探器。 SNMP v1很適合現在。意味着您沒有遇到安全功能。嘗試發送到本地主機,看看會發生什麼。你可能不得不改變你的號碼,像你的CPU等。這將測試你的代碼的正確性。如果你在Windows上,它可能是Windows防火牆。您也可以嘗試發送到不同的設備,如交換機或路由器,以查看是否有其他設備響應。 SimpleSNMP是否允許從設備獲取所有數字? –

回答

0

Rambomst:你提及所有的PDF C5045 OIDs,你介意分享PDF嗎?...我正在尋找這些代碼!

iReasoning的MIB瀏覽器是非常方便的SNMP調試:http://ireasoning.com/mibbrowser.shtml

+0

我將它添加到我原來的帖子。 – Rambomst

+0

謝謝!不幸的是,它沒有提到打印/掃描計數OID,你有什麼想法,我可以找到那些? – Protozoa