zoukankan      html  css  js  c++  java
  • snmp4j 编程

    从www.snmp4j.org下载snmp4j的jar包,用eclipse新建一个java项目。将jar包导入工程(只有一个jar包),开始编程

    一个简单的测试程序

    //create target

    //create pdu

    //snmp.send

    okay,上代码

    package com.gxf.snmp;
    
    import java.io.IOException;
    
    import org.snmp4j.CommunityTarget;
    import org.snmp4j.PDU;
    import org.snmp4j.Snmp;
    import org.snmp4j.TransportMapping;
    import org.snmp4j.event.ResponseEvent;
    import org.snmp4j.mp.SnmpConstants;
    import org.snmp4j.smi.Address;
    import org.snmp4j.smi.GenericAddress;
    import org.snmp4j.smi.OID;
    import org.snmp4j.smi.OctetString;
    import org.snmp4j.smi.Variable;
    import org.snmp4j.smi.VariableBinding;
    import org.snmp4j.transport.DefaultUdpTransportMapping;
    
    //create target
    //create pdu
    //snmp send
    
    public class SNMP {
    
        public static void main(String[] args) {
            //create target
            Address address = GenericAddress.parse("udp:210.38.235.186/161");
            CommunityTarget target = new CommunityTarget();
            
            target.setCommunity(new OctetString("public"));
            target.setAddress(address);
            target.setTimeout(10000);//10s
            target.setVersion(SnmpConstants.version2c);
            //create pdu
            PDU pduSet = createSetPdu();
            PDU pudGet = createGetPdu();
            
            sendPdu(pudGet, target);
            sendPdu(pduSet, target);
            sendPdu(pudGet, target);
            
            
        }
        //1.3.6.1.2.1.1.5.0 sysName
        //create set pdu 
        public static  PDU createSetPdu(){
            PDU pduReturn = new PDU();
            
            pduReturn.setType(PDU.SET);
            VariableBinding variable = new VariableBinding(new OID("1.3.6.1.2.1.1.5.0"), new OctetString("testname"));
            pduReturn.add(variable);
            
            return pduReturn;
        }
        //create get pdu
        public static PDU createGetPdu(){
            PDU pduReturn = new PDU();
            
            pduReturn.setType(PDU.GET);
            VariableBinding variableBinding = new VariableBinding(new OID("1.3.6.1.2.1.1.5.0"));
            pduReturn.add(variableBinding);
            
            return pduReturn;        
        }
        //send pdu
        public static void sendPdu(PDU pdu, CommunityTarget communityTarget){
            try {
                TransportMapping transportMapping = new DefaultUdpTransportMapping();
                transportMapping.listen();
                Snmp snmp = new Snmp(transportMapping);
                
                ResponseEvent responseEvent = snmp.send(pdu, communityTarget);
                //get reponse pdu
                if(null != responseEvent){
                    PDU pduResponse = responseEvent.getResponse();
                    System.out.println("size : " + pduResponse.size());
                    for(int i = 0; i < pduResponse.size(); i++){
                        VariableBinding variableBinding = pduResponse.get(i);
                        Variable variable = variableBinding.getVariable();
                        System.out.println(variable.toString());
                    }
                    System.out.println("error:" + pduResponse.getErrorStatusText());
                }
                else{
                    System.out.println("timeout ...");
                }
            } catch (IOException e) {
                
                e.printStackTrace();
                System.out.println(e.getMessage());
            }
            
        }
    }
  • 相关阅读:
    PHP 使用 GET 传递数组变量
    Java实现 蓝桥杯 算法训练 数据交换
    Java实现 蓝桥杯 算法训练 数据交换
    Java实现 蓝桥杯 算法训练 数据交换
    Java实现 蓝桥杯 算法训练 景点游览
    Java实现 蓝桥杯 算法训练 景点游览
    Java实现 蓝桥杯 算法训练 景点游览
    Java实现 蓝桥杯 算法训练 二进制数数
    Java实现 蓝桥杯 算法训练 二进制数数
    Java实现 蓝桥杯 算法训练 二进制数数
  • 原文地址:https://www.cnblogs.com/luckygxf/p/3895909.html
Copyright © 2011-2022 走看看