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

📄 snmpinformreq_receiver.java

📁 this is the file is used to get the snmp enabled information
💻 JAVA
字号:
 /* $Id: snmpinformreq_receiver.src,v 1.4.2.7 2009/01/28 12:45:56 prathika Exp $ */ /* * @(#)snmpinformreq_receiver.java * Copyright (c) 1996-2009 AdventNet, Inc. All Rights Reserved. * Please read the COPYRIGHTS file for more details. * *//**  *  Run command line Inform request receiver and print incoming PDUs.  Loads  *  MIBs as specified, and converts to/from names for loaded MIB data.  *  It also prints loaded trap names and descriptions when the *  corresponding Inform Requests are received. * * [-d] <debug>        - Debug output.By default off. * [-c] <community>    - community String. By default "public". * [-p] <port>         - remote port no. By default 161. * [-m] <mibs>           - The mibs to be loaded. * [-e] <engineID>       - The V3 engineID * [-u] <username>     - The v3 principal/userName * [-a] <autProtocol>  - The authProtocol(MD5/SHA). Mandatory if authPassword is specified * [-w] <authPassword> - The authentication password. * [-s] <privPassword> - The privacy protocol password. Must be accompanied with auth password and authProtocol fields. * [-pp] <privProtocol> - The privacy protocol. Must be accompanied with auth,priv password and authProtocol fields. */import com.adventnet.snmp.beans.*;import com.adventnet.snmp.snmp2.*;import com.adventnet.snmp.snmp2.usm.*;//import ParseOptions;public class snmpinformreq_receiver {    private static int MIBS = 0;    private static int COMMUNITY = 1;    private static int PORT = 2;    private static int DEBUG =3;    private static int USER_NAME = 4;    private static int ENGID = 5;    private static int AUTH_PROTOCOL = 6;    private static int AUTH_PASSWORD = 7;    private static int PRIV_PASSWORD = 8;    private static int CONTEXT_NAME = 9;    private static int CONTEXT_ID = 10;    private static int PRIV_PROTOCOL =11;    public static void main(String args[]) {    // Take care of getting options    String usage = "snmpinformreq_receiver [-m MIB_files] [-c community] [-p port] [-d] [-u user] [-e engineID(1234.../0x1234...)] [-a authProtocol(MD5/SHA)] [-w auth_password] [-s priv_password] [-n contextName] [-i contextId] [ -pp priv_protocol (DES/AES-128/AES-192/AES-256/3DES) ] ";    String options[] = { "-m" , "-c", "-p", "-d", "-u", "-e", "-a", "-w", "-s","-n","-i","-pp" };    String values[] = { null, null, null, "None", null, null, null, null, null, null, null, null};    String userName = null;    int authProtocol = USMUserEntry.NO_AUTH;    String authPassword = new String ("");    String privPassword = new String ("");    String engineID = null;    int privProtocol = 0;    byte secLevel = 0;    ParseOptions opt = new ParseOptions(args,options,values, usage);    if (opt.remArgs.length!=0) opt.usage_error();    // instantiate a receiver object    SnmpTrapReceiver receiver = new SnmpTrapReceiver();     //To load MIBs from compiled file     receiver.getMibOperations().setLoadFromCompiledMibs(true);         if(values[DEBUG].equals("Set"))         receiver.setDebug(true);        if (values[COMMUNITY] != null) receiver.setCommunity( values[COMMUNITY] );    try {  // set Inform Request port to listen on if specified - else port 162                if (values[PORT] != null)   {            int port = -1;            if((port = Integer.parseInt(values[PORT])) < 0) {                System.err.println("Invalid port number");                opt.usage_error();            }                receiver.setPort( Integer.parseInt(values[PORT]) );        }        else            receiver.setPort( 162 );    } catch (NumberFormatException ex) {        System.err.println("Invalid Integer Arg");    }        if (values[USER_NAME] != null) {            userName = values[USER_NAME];            receiver.setPrincipal(userName);         }            if (values[ENGID] != null) {            engineID = values[ENGID];            if(engineID.startsWith("0x") || engineID.startsWith("0X"))                engineID = new String(gethexValue(values[ENGID]));        }            if (values[AUTH_PROTOCOL] != null) {        if ( values[AUTH_PROTOCOL].equals("SHA"))            authProtocol = USMUserEntry.SHA_AUTH;        else if ( values[AUTH_PROTOCOL].equals("MD5"))            authProtocol = USMUserEntry.MD5_AUTH;        else            authProtocol = USMUserEntry.NO_AUTH;        receiver.setAuthProtocol(authProtocol);        secLevel |= 0x01;        }        if (values[AUTH_PASSWORD] != null) {        if (secLevel == 0x01) {            authPassword = values[AUTH_PASSWORD];            receiver.setAuthPassword(authPassword);        }        else            opt.usage_error();        }        if(values[PRIV_PASSWORD] != null) {        if (secLevel == 0x01)        {            privPassword = values[PRIV_PASSWORD];            if(values[PRIV_PROTOCOL] != null)            {                    if(values[PRIV_PROTOCOL].equals("AES-128"))                    {                       privProtocol = USMUserEntry.CFB_AES_128;                    }		    else if(values[PRIV_PROTOCOL].equals("AES-192"))                    {                       privProtocol = USMUserEntry.CFB_AES_192;                    }		    else if(values[PRIV_PROTOCOL].equals("AES-256"))                    {                       privProtocol = USMUserEntry.CFB_AES_256;                    }		    else if(values[PRIV_PROTOCOL].equals("3DES"))                    {                       privProtocol = USMUserEntry.CBC_3DES;                    }                    else if(values[PRIV_PROTOCOL].equals("DES"))                    {                       privProtocol = USMUserEntry.CBC_DES;                    }                    else                    {                     System.out.println(" Invalid PrivProtocol "+values[PRIV_PROTOCOL]);                     opt.usage_error();                    }            }            receiver.setPrivPassword(privPassword);            receiver.setPrivProtocol(privProtocol);                        if(values[CONTEXT_NAME]!= null)            receiver.setContextName(values[CONTEXT_NAME]);            if(values[CONTEXT_ID]!= null)            receiver.setContextID((values[CONTEXT_ID]).getBytes());            secLevel |= 0x02;        }        else            {            opt.usage_error();            }        }        if(userName != null)         receiver.createUserEntry(engineID.getBytes(),secLevel);            if (values[MIBS] != null) try { // load MIB files        System.err.println("Loading MIBs: "+values[MIBS]);        receiver.loadMibs(values[MIBS]);    } catch (Exception ex) {        System.err.println("Error loading MIBs: "+ex);    }        // we need to instantiate a trap listener to listen for trap events    TrapListener listener = new TrapListener() {        // This method is called when Inform Request is received by SnmpTrapReceiver        public void receivedTrap(TrapEvent trap) {            // print PDU details        System.out.println( ((SnmpTrapReceiver)trap.getSource())            .getMibOperations().toString(trap.getTrapPDU()) );        if( trap.getTrapPDU().getCommand() == SnmpAPI.TRP_REQ_MSG)        {        System.out.println("Received Trap Notification from: "+trap.getRemoteHost());        com.adventnet.snmp.mibs.MibTrap trapDefn = // get trap defn            trap.getTrapDefinition();        if (trapDefn != null)  // print name and description            System.out.println("Trap Name: "+trapDefn.getName()+                       "\nDescr: "+trapDefn.getDescription());         }         else if( trap.getTrapPDU().getCommand() == SnmpAPI.TRP2_REQ_MSG)        {        System.out.println("Received Trap Notification from: "+trap.getRemoteHost());                com.adventnet.snmp.mibs.MibNode notification = trap.getNotificationDefinition();        if(notification != null)            System.out.println("Notification Name: "+notification.getLabel()+                           "\nObjects: "+ notification.getObjects()+                           "\nStatus: "+ notification.getStatus()+                           "\nDescr: "+notification.getDescription()+                           "\nParent: "+ notification.getParent());                }         else if( trap.getTrapPDU().getCommand() == SnmpAPI.INFORM_REQ_MSG)                 {                System.out.println("Received Inform Request from: "+trap.getRemoteHost());                 }        }    };     receiver.addTrapListener(listener);            System.out.println("Inform Receiver started at port "+receiver.getPort());    }    private static byte[] gethexValue(String value)    {        byte temp;        byte[] Key=new byte[value.length()/2 - 1];        String ss,str;        ss = value.substring(2);        for(int i = 0; i < ss.length(); i+=2)        {            str = ss.substring(i,i+2);            temp = (byte)Integer.parseInt(str,16);            Key[i/2] = temp;        }        return Key;        }}

⌨️ 快捷键说明

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