使用 adventnet/WebNMS 以十六进制格式获取 SNMP 请求消息

Get the SNMP request message using adventnet/WebNMS in hex format

我正在使用 WebNMS/adventnet 在设备上获取和设置 SNMP 命令。

我想以编程方式访问在调试模式打开时以十六进制格式打印的请求和响应数据。

import com.adventnet.snmp.snmp2.SnmpAPI;
import com.adventnet.snmp.snmp2.SnmpException;
import com.adventnet.snmp.snmp2.SnmpOID;
import com.adventnet.snmp.snmp2.SnmpPDU;
import com.adventnet.snmp.snmp2.SnmpSession;
import com.adventnet.snmp.snmp2.UDPProtocolOptions;

public class SNMPWebNMS {
 //Need both request and response in hex format
 //It prints in log , request and response data in hex format   
 public static void main(String[] args) throws SnmpException {

    SnmpAPI api=new SnmpAPI();
    api.setDebug(true);
    SnmpSession session=new SnmpSession(api);
    session.open();
    SnmpPDU pdu=new SnmpPDU();
    UDPProtocolOptions options=new UDPProtocolOptions("192.168.0.1");
    pdu.setProtocolOptions(options);
    pdu.setCommunity("dummy");
    pdu.setCommand(SnmpAPI.GET_REQ_MSG);
    SnmpOID oid=new SnmpOID(".1.3.6.1.2.1.1.1.0");
    pdu.addNull(oid);       
    SnmpPDU result=session.syncSend(pdu);
    System.out.println("result = "+result.toString());
    session.close();
   }

 }

我建议这条指令:

result.getVariableBindings().toString();

获取OID的字符串值。