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

📄 snmpserver.java

📁 SNMPSERVER是SNMP服务器源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        final String slot44e1loop1="1.3.6.1.4.1.25449.30.1.9.2.2.0";
        final String slot44e1loop2="1.3.6.1.4.1.25449.30.2.9.2.2.0";
        //8E1卡
        //告警屏蔽
        final String slot48e1war1="1.3.6.1.4.1.25449.30.1.9.3.1.0";
        final String slot48e1war2="1.3.6.1.4.1.25449.30.2.9.3.1.0";
        //环回设置
        final String slot48e1loop1="1.3.6.1.4.1.25449.30.1.9.3.2.0";
        final String slot48e1loop2="1.3.6.1.4.1.25449.30.2.9.3.2.0";
        //单V.35卡
        //告警屏蔽
        final String slot4v35war1="1.3.6.1.4.1.25449.30.1.9.4.1.0";
        final String slot4v35war2="1.3.6.1.4.1.25449.30.2.9.4.1.0";
        //环回设置
        final String slot4v35loop1="1.3.6.1.4.1.25449.30.1.9.4.2.0";
        final String slot4v35loop2="1.3.6.1.4.1.25449.30.2.9.4.2.0";
        //参数配置
        final String slot4v35para1="1.3.6.1.4.1.25449.30.1.9.4.3.0";
        final String slot4v35para2="1.3.6.1.4.1.25449.30.2.9.4.3.0";
        //双路V.35卡
        //告警屏蔽
        final String slot42v35war1="1.3.6.1.4.1.25449.30.1.9.7.1.0";
        final String slot42v35war2="1.3.6.1.4.1.25449.30.2.9.7.1.0";
        //环回设置
        final String slot42v35loop1="1.3.6.1.4.1.25449.30.1.9.7.2.0";
        final String slot42v35loop2="1.3.6.1.4.1.25449.30.2.9.7.2.0";
        //参数配置
        final String slot42v35para1="1.3.6.1.4.1.25449.30.1.9.7.3.0";
        final String slot42v35para2="1.3.6.1.4.1.25449.30.2.9.7.3.0";
        //四路V.35卡
        //告警屏蔽
        final String slot44v35war1="1.3.6.1.4.1.25449.30.1.9.8.1.0";
        final String slot44v35war2="1.3.6.1.4.1.25449.30.2.9.8.1.0";
        //环回设置
        final String slot44v35loop1="1.3.6.1.4.1.25449.30.1.9.8.2.0";
        final String slot44v35loop2="1.3.6.1.4.1.25449.30.2.9.8.2.0";
        //参数配置
        final String slot44v35para1="1.3.6.1.4.1.25449.30.1.9.8.3.0";
        final String slot44v35para2="1.3.6.1.4.1.25449.30.2.9.8.3.0";

        /*告警信息检测*/
        final String warinfo="1.3.6.1.4.1.25449.30.1.2.0";
        PDU vPDU;
        String re;
        String oid;
        public Handler(){}
        public void configure(){
            try{
                InetAddress ia=InetAddress.getLocalHost();
                mAddress =ia.getHostAddress();
            }
            catch(Exception e){e.printStackTrace();}
            mPort = 10001;
            mMyCommunityName = "public";
        }
        public void start(){
            try   {
                f = new FileInputStream("MYMIB.PROPERTIES");
                p.load(f);
                mServerSocket = new DefaultUdpTransportMapping(new
                        UdpAddress(java.net.InetAddress.getByName(mAddress),
                         mPort));
                jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
                JPanel jp=new JPanel(new GridLayout(2,1));
                jt.setText("c1:00:00:01:00:02:80:00:00:04:00:0f:00:07:00:36:00:08:00:36:00:a2:aa:60:c0:01:00:01:00:02:80:00:00:04:00:0f:00:07:00:36:00:08:00:36:00:a2:aa:60");
                jp.add(jt);
                jp.add(new JLabel("SNMP SERVER WORKING...."));
                jp.setBackground(Color.lightGray);
                jf.getContentPane().add(jp);
                jf.setSize(200,100);
                Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
                Dimension frameSize = jf.getSize();
                if (frameSize.height > screenSize.height) {
                    frameSize.height = screenSize.height;
                }
                if (frameSize.width > screenSize.width) {
                    frameSize.width = screenSize.width;
                }
                jf.setLocation((screenSize.width - frameSize.width) / 2,
                               (screenSize.height - frameSize.height) / 2);
                mSNMP = new Snmp(mServerSocket);
                mSNMP.addCommandResponder(this);
                jf.setVisible(true);
                mServerSocket.listen();
            }
            catch(Exception ee){ee.printStackTrace();}
        }
        public synchronized void  processPdu(CommandResponderEvent aEvent){
            //String vCommunityName = new String(aEvent.getSecurityName());
            vPDU = aEvent.getPDU();
            if (vPDU == null) {
                System.out.println("Null pdu");
            }//
            else {
                System.out.println("接收到的请求 :  " + vPDU.toString());
                try{
                    re="";
                    oid = vPDU.getVariableBindings().toString().substring(1,
                            vPDU.getVariableBindings().toString().indexOf(" ="));
                    System.out.println("接收到的请求 :" + oid+"::");
                    switch (vPDU.getType()) { //共有GET,GETNEXT,INFORM,GETBULK,SET
                    case PDU.GET:
                        try{wait(400);
                            if(oid.equals(warinfo)){
                                re=jt.getText();
                            }
                            else
                                re=p.getProperty(oid);
                        }catch(Exception eee){eee.printStackTrace();}
                        break;
                    case PDU.GETNEXT:break;
                    case PDU.GETBULK:break;
                    case PDU.INFORM:break;
                    case PDU.SET:
                        FileOutputStream fos = new FileOutputStream(new File("MYMIB.PROPERTIES"));
                        p.setProperty(oid,
                                      vPDU.getVariableBindings().toString().substring(
                                              vPDU.getVariableBindings().toString().indexOf("= ")+2,
                                              vPDU.getVariableBindings().toString().indexOf(']')));
                        p.store(fos,null);
                        break;
                    case PDU.TRAP:break;
                     //
                    }//举个例子,比如你想发送1.3.6.1.4.1.25449.3.0,
                StatusInformation statusInformation =
                        new StatusInformation();
                StateReference ref = aEvent.getStateReference();
                System.out.println("Sending  response");
                vPDU.setType(PDU.RESPONSE);
                vPDU.set(0,new VariableBinding(vPDU.get(0).getOid(),new OctetString((re))));
                System.out.println(vPDU);
                aEvent.getMessageDispatcher().returnResponsePdu(     //发送数据函数
                            aEvent.getMessageProcessingModel(),
                            aEvent.getSecurityModel(), aEvent.getSecurityName(),
                            aEvent.getSecurityLevel(), vPDU, aEvent.getMaxSizeResponsePDU(),
                            ref,
                            statusInformation);
            }
            catch (Exception vException) {
                vException.printStackTrace();
                System.out.println(vException);
            }
        }
    }
}
    public static void main(String[] arg){
        Handler h = new Handler();
        h.configure();
        h.start();
        new Thread(new Runnable(){
            public void run(){
                while( true ) {
                    synchronized(snmpServer.class){
                        try{
                            snmpServer.class.wait();
                        }
                        catch( Exception e ){
                            e.printStackTrace();
                        }
                    }
                }
            }
        }).start();
    }
    public static byte[] get_byte(String value){
         byte[] b=null;
         int times=0;
         char[] c=value.toCharArray();
         for(int i=0;i<c.length;i++){
             if(c[i]==':'){
                 times++;
             }
         }
         if(times==0){
             b=new byte[1];
             b[0]=(byte)Integer.parseInt(value,16);
         }
         else{
             b=new byte[times+1];
             for(int i=0;i<b.length-1;i++){
                 String s_4=value.substring(0,value.indexOf(":"));
                 int a=Integer.parseInt(s_4,16);
                 value=value.substring(value.indexOf(":")+1);
                 b[i]=(byte)a;
             }
             b[times]=(byte)Integer.parseInt(value,16);
         }//
         return b;
     }
    public void checkTraps(){//检验机器故障的函数。用于向管理机发送trap报文。

    }
}

⌨️ 快捷键说明

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