• 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());
            }
            
        }
    }
  • 相关阅读:
    Atitit.php  nginx页面空白 并返回500的解决
    Atitit.php  nginx页面空白 并返回500的解决
    Atitit .linux 取回root 密码q99
    Atitit .linux 取回root 密码q99
    atitit.农历的公式与原理以及农历日期运算
    atitit.农历的公式与原理以及农历日期运算
    Atitit.用户权限服务 登录退出功能
    Atitit.用户权限服务 登录退出功能
    atitit.atiOrm.js v2 q61 版本新特性.docx
    Atitit.报名模块的管理
  • 原文地址:https://www.cnblogs.com/luckygxf/p/3895909.html
Copyright © 2020-2023  润新知