我一直試圖從工作中的打印機獲取警報代碼,以查看究竟發生了什麼,但每次發送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
什麼版本的SNMP的打印機是否使用? 另外,你確定點分隔的數字是正確的嗎?運行一個數據包嗅探器也看它是否發回任何東西。 –
該設置表示它使用「SNMP v.1」。如果需要,我可以打開「SNMP v。3」。我相信點號分隔是正確的。什麼是好的數據包嗅探器?多年來我沒有做過那樣的事情。 – Rambomst
Wireshark是一個很好的數據包嗅探器。 SNMP v1很適合現在。意味着您沒有遇到安全功能。嘗試發送到本地主機,看看會發生什麼。你可能不得不改變你的號碼,像你的CPU等。這將測試你的代碼的正確性。如果你在Windows上,它可能是Windows防火牆。您也可以嘗試發送到不同的設備,如交換機或路由器,以查看是否有其他設備響應。 SimpleSNMP是否允許從設備獲取所有數字? –