⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 settest.java

📁 自己写的一段用snmp4j包实现发set消息的程序
💻 JAVA
字号:
/*
 * 创建日期 2007-10-18
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package cn.settest;

import java.io.IOException;

import org.snmp4j.*;  //new--------------------------
import org.snmp4j.CommunityTarget;
import org.snmp4j.PDU;
import org.snmp4j.Snmp;
import org.snmp4j.event.ResponseEvent;
import org.snmp4j.mp.*;  //new-----------------------
//import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.smi.*;  //new----------------------
//import org.snmp4j.smi.OID;
//import org.snmp4j.smi.OctetString;
//import org.snmp4j.smi.UdpAddress;
//import org.snmp4j.smi.Variable;
//import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.*;  //new
//import org.snmp4j.transport.DefaultUdpTransportMapping;
import org.snmp4j.util.*;  //new----------------------
import org.snmp4j.security.*;  //new------------------

public class Settest {
   

    public static void main(String[] args) {
        Settest aa=new Settest();
        aa.test("private","192.168.100.1","161","1.3.6.1.2.1.69.1.1.3.0",1);
        }
    
    
  public void test(String community,String ip,String port,String Oid,int value) {
          
          try{
                    Snmp snmp = new Snmp(new DefaultUdpTransportMapping());
                    CommunityTarget target = new CommunityTarget();
                    target.setCommunity(new OctetString(community));
                    target.setVersion(SnmpConstants.version1);
                    target.setAddress(new UdpAddress(ip+"/"+port));
                    target.setRetries(1);
                    target.setTimeout(2000);
                    snmp.listen();
                    PDU request = new PDU();
                    request.setType(PDU.SET);
   //----------------------(已解决)!!!!!!!!!!!!!!!set消息的格式好像有点问题!!!!!!!!!!!!!---------------------- 
                   // request.addOID(new VariableBinding(new OID(Oid),new OctetString(value)));
                    VariableBinding vb=new VariableBinding(new OID(Oid));
                   // System.out.println(Oid);  //new-----------------------------
                   // System.out.println(vb);  //new------------------------------
                    Variable variable;
                    variable=new Integer32(Integer.parseInt("1"));
                    vb.setVariable(variable);
                   // System.out.println(vb);  //new------------------------------
                    request.add(vb);
  //-----------------------request.add(new VariableBinding(new OID(Oid),value));-------------------
                    System.out.println("发送的UDP:" + request);
                    PDU response = null;
                    ResponseEvent responseEvent = snmp.send(request, target);
                    response = responseEvent.getResponse();

                     if(response!=null){
                       if(response.getErrorStatus()==PDU.noError){
                            String pause=responseEvent.getResponse().getVariableBindings().toString();
                                  /*getvalue的值为对应OID的值*/
                             String getvalue=pause.substring( pause.indexOf("= ")+2,pause.indexOf(']'));
                             String oid=pause.substring(pause.indexOf("VBS[")+2,pause.indexOf("=")-1);
                             System.out.println(oid+":");
                             System.out.println("response"+response);
                       }
        
                       else{
                             System.out.println(response.getErrorStatusText());
                            }
                     }
                     else{
                         System.out.println("Error!!");
                     }
          }
                     
          catch (IOException e) {
                       e.printStackTrace();
                     }
      //}
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -