使用snmp4j實現Snmp功能(三)

2021-09-30 00:15:18 字數 925 閱讀 3696

前兩篇文章講了如何使用snmp4j實現set、get(使用snmp4j實現snmp功能(一))以及傳送、接收trap(使用snmp4j實現snmp功能(二)) 功能。

在我們前面的實現中,如果訪問mib庫中不存在的oid,get方式的話,我們會得到乙個null值,而set方式時agent端會把我們發過去的pdu原封不動的返回回來。當然多數情況下這不是我們想要的結果,所以今天我們講一下如何設定agent端的response。

這個功能其實和接收傳送trap是一樣的,只不過物件變了一下而已。同樣,接收set和get的方法寫在commandresponderprocesspdu()中。我們把前面寫過的initcomm() 的processpdu()中新增一段**(agent端)

// 設定response

if ((command.gettype() != pdu.trap)

&& (command.gettype() != pdu.v1trap)

&& (command.gettype() != pdu.report)

&& (command.gettype() != pdu.response)) catch (messageexception ex)

}

接下來讓agent端的main()函式呼叫listen(),執行main()函式,agent端開始監聽來自manager的set和get。

回到本機,向agent端傳送乙個set的pdu或get的pdu,如果控制台打出我們剛剛在程式中設定的值"mysnmp",說明我們的response設定成功啦!

當然,程式中的設定pdu的value是乙個最簡單的response示例,在實際的應用中,應該要根據不同的oid返回不同的value,這一部分的**要根據實際的應用去發揮啦.

使用snmp4j實現Snmp功能(一)

上面的這段 直接參考snmp4j api說明文件中提供的例子,是乙個最簡單的snmp4j的應用。只要你的機器裡安裝了snmp通訊元件,上面的 應該可以執行成功。在上乙個例子中,我們只做了讀取的工作,接下來,我們進行一下設定操作,通過snmp修改讀取的機器名。public的預設許可權是唯讀,要想進行寫...

利用snmp4j通過SNMP獲取遠端伺服器狀態

執行命令yum install net snmp utils net snmp 即可安裝。配置 vi etc snmp snmpd.conf 配置檔案,找到view systemview included這一行,在下面加上一行 view all included 1,同時修改一行 access no...

Snmp4j程式設計簡介之一

snmp4j程式設計簡介之一 target 關於snmp4j包,最重要三個概念,也是三個類 snmp target pdu。target,表示被管理的裝置。對於乙個被管理的裝置,我們關注它的address,它使用的協議版本version,訪問它的使用者名稱和密碼 以及對這個裝置我們設定跟它打交道的一...