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

📄 snmptraptest.java

📁 基于snmp/mib的网络数据获取系统设计与实现
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        theLayout.setConstraints(messagesLabel, c);
        messagesPanel.add(messagesLabel);
        
        c.gridx = 2;
        c.gridy = 1;
        c.anchor = GridBagConstraints.EAST;
        theLayout.setConstraints(clearButton, c);
        messagesPanel.add(clearButton);
        
        c.fill = GridBagConstraints.BOTH;
        c.gridx = 1;
        c.gridy = 2;
        c.gridwidth = 2;
        c.weightx = .5;
        c.weighty = .5;
        c.anchor = GridBagConstraints.CENTER;
        theLayout.setConstraints(messagesScroll, c);
        messagesPanel.add(messagesScroll);
        
        
        c.gridwidth = 1;
        c.weightx = 0;
        c.weighty = 0;
        
        
        
        this.getContentPane().setLayout(theLayout);
        
        
        c.gridx = 1;
        c.gridy = 1;
        theLayout.setConstraints(hostPanel, c);
        this.getContentPane().add(hostPanel);
        
        c.gridx = 1;
        c.gridy = 2;
        theLayout.setConstraints(oidPanel, c);
        this.getContentPane().add(oidPanel);
        
        c.gridx = 1;
        c.gridy = 3;
        theLayout.setConstraints(buttonPanel, c);
        this.getContentPane().add(buttonPanel);
        
        c.fill = GridBagConstraints.BOTH;
        c.gridx = 1;
        c.gridy = 4;
        c.weightx = .5;
        c.weighty = .5;
        theLayout.setConstraints(messagesPanel, c);
        this.getContentPane().add(messagesPanel);
        
        c.fill = GridBagConstraints.NONE;
        c.gridx = 1;
        c.gridy = 5;
        c.weightx = 0;
        c.weighty = 0;
        theLayout.setConstraints(authorLabel, c);
        this.getContentPane().add(authorLabel);
        
        
    }
    
    
    
    
    
    public void actionPerformed(ActionEvent theEvent)
    // respond to button pushes, menu selections
    {
        String command = theEvent.getActionCommand();
        
    
        if (command == "quit")
        {
            readerThread.interrupt();
            System.exit(0);
        }
        
        
        
        if (command == "clear messages")
        {
            messagesArea.setText("");
        }
        
        
        
        if (command == "about")
        {
            //AboutDialog aboutDialog = new AboutDialog(this);
        }
        
        
        if (command == "send v1 trap")
        {
            try
            {
            
                String community = communityField.getText();
                int version = 0;    // SNMPv1
                InetAddress hostAddress = InetAddress.getByName(hostIDField.getText());
                
                
                
                SNMPObjectIdentifier enterpriseOID = new SNMPObjectIdentifier(enterpriseField.getText());
                SNMPIPAddress agentAddress = new SNMPIPAddress(agentField.getText());
                int genericTrap = genericTrapBox.getSelectedIndex();
                int specificTrap = specificTrapBox.getSelectedIndex();
                SNMPTimeTicks timestamp = new SNMPTimeTicks((long)(System.currentTimeMillis()/10));
                
                // see if have any additional variable pairs to send, and add them to
                // the VarBindList if so
                SNMPVarBindList varBindList = new SNMPVarBindList();
                
                String itemIDString = OIDField.getText();
                
                if (!itemIDString.equals(""))
                {
                    SNMPObjectIdentifier itemID = new SNMPObjectIdentifier(itemIDString);
                    
                    String valueString = valueField.getText();
                    String valueTypeString = (String)valueTypeBox.getSelectedItem();
                    valueTypeString = "snmp." + valueTypeString;
                    
                    SNMPObject itemValue;
                    Class valueClass = Class.forName(valueTypeString);
                    itemValue = (SNMPObject)valueClass.newInstance();
                    itemValue.setValue(valueString);
                    
                    varBindList.addSNMPObject(new SNMPVariablePair(itemID, itemValue));
                }
                
                // create trap pdu
                SNMPv1TrapPDU pdu = new SNMPv1TrapPDU(enterpriseOID, agentAddress, genericTrap, specificTrap, timestamp, varBindList);
    
                // and send it
                messagesArea.append("Sending trap to " + hostIDField.getText() + ":\n");
        
                messagesArea.append("  enterprise OID:     " + pdu.getEnterpriseOID().toString() + "\n");
                messagesArea.append("  agent address:      " + pdu.getAgentAddress().toString() + "\n");
                messagesArea.append("  generic trap:       " + pdu.getGenericTrap() + "\n");
                messagesArea.append("  specific trap:      " + pdu.getSpecificTrap() + "\n");
                messagesArea.append("  timestamp:          " + pdu.getTimestamp() + "\n");
                messagesArea.append("  supplementary vars: " + pdu.getVarBindList().toString() + "\n");
                
                messagesArea.append("\n");
                
                
                trapSenderInterface.sendTrap(hostAddress, community, pdu);
            
            }
            catch(InterruptedIOException e)
            {
                messagesArea.append("Interrupted during trap send:  " + e + "\n");
            }
            catch(Exception e)
            {
                messagesArea.append("Exception during trap send:  " + e + "\n");
            }
        }
        
        
        if (command == "send v2 trap")
        {
            try
            {
            
                String community = communityField.getText();
                InetAddress hostAddress = InetAddress.getByName(hostIDField.getText());
                
                
                // use the enterprise OID field as the snmp trap OID
                SNMPObjectIdentifier snmpTrapOID = new SNMPObjectIdentifier(enterpriseField.getText());
                
                // let uptime just be system time...
                SNMPTimeTicks sysUptime = new SNMPTimeTicks((long)(System.currentTimeMillis()/10));
                
                // see if have any additional variable pairs to send, and add them to
                // the VarBindList if so
                SNMPVarBindList varBindList = new SNMPVarBindList();
                
                String itemIDString = OIDField.getText();
                
                if (!itemIDString.equals(""))
                {
                    SNMPObjectIdentifier itemID = new SNMPObjectIdentifier(itemIDString);
                    
                    String valueString = valueField.getText();
                    String valueTypeString = (String)valueTypeBox.getSelectedItem();
                    valueTypeString = "snmp." + valueTypeString;
                    
                    SNMPObject itemValue;
                    Class valueClass = Class.forName(valueTypeString);
                    itemValue = (SNMPObject)valueClass.newInstance();
                    itemValue.setValue(valueString);
                    
                    varBindList.addSNMPObject(new SNMPVariablePair(itemID, itemValue));
                }
                
                // create trap pdu
                SNMPv2TrapPDU pdu = new SNMPv2TrapPDU(sysUptime, snmpTrapOID, varBindList);
    
                // and send it
                messagesArea.append("Sending trap to " + hostIDField.getText() + ":\n");
        
                messagesArea.append("  system uptime:      " + pdu.getSysUptime().toString() + "\n");
                messagesArea.append("  trap OID:           " + pdu.getSNMPTrapOID().toString() + "\n");
                messagesArea.append("  var bind list:      " + pdu.getVarBindList().toString() + "\n");
                
                messagesArea.append("\n");
                
                
                trapSenderInterface.sendTrap(hostAddress, community, pdu);
            
            }
            catch(InterruptedIOException e)
            {
                messagesArea.append("Interrupted during trap send:  " + e + "\n");
            }
            catch(Exception e)
            {
                messagesArea.append("Exception during trap send:  " + e + "\n");
            }
        }
        
        
        if (command == "send v2 inform request")
        {
            try
            {
            
                String community = communityField.getText();
                InetAddress hostAddress = InetAddress.getByName(hostIDField.getText());
                
                
                // use the enterprise OID field as the snmp trap OID
                SNMPObjectIdentifier snmpTrapOID = new SNMPObjectIdentifier(enterpriseField.getText());
                
                // let uptime just be system time...
                SNMPTimeTicks sysUptime = new SNMPTimeTicks((long)(System.currentTimeMillis()/10));
                
                // see if have any additional variable pairs to send, and add them to
                // the VarBindList if so
                SNMPVarBindList varBindList = new SNMPVarBindList();
                
                String itemIDString = OIDField.getText();
                
                if (!itemIDString.equals(""))
                {
                    SNMPObjectIdentifier itemID = new SNMPObjectIdentifier(itemIDString);
                    
                    String valueString = valueField.getText();
                    String valueTypeString = (String)valueTypeBox.getSelectedItem();
                    valueTypeString = "snmp." + valueTypeString;
                    
                    SNMPObject itemValue;
                    Class valueClass = Class.forName(valueTypeString);
                    itemValue = (SNMPObject)valueClass.newInstance();
                    itemValue.setValue(valueString);
                    
                    varBindList.addSNMPObject(new SNMPVariablePair(itemID, itemValue));
                }
                
                // create inform request pdu
                SNMPv2InformRequestPDU pdu = new SNMPv2InformRequestPDU(sysUptime, snmpTrapOID, varBindList);
    
                // and send it
                messagesArea.append("Sending inform request to " + hostIDField.getText() + ":\n");
        
                messagesArea.append("  system uptime:      " + pdu.getSysUptime().toString() + "\n");
                messagesArea.append("  trap OID:           " + pdu.getSNMPTrapOID().toString() + "\n");
                messagesArea.append("  var bind list:      " + pdu.getVarBindList().toString() + "\n");
                
                messagesArea.append("\n");
                
                
                informRequestSenderInterface.sendInformRequest(hostAddress, community, pdu);
            
            }
            catch(InterruptedIOException e)
            {
                messagesArea.append("Interrupted during inform request send:  " + e + "\n");
            }
            catch(Exception e)
            {
                messagesArea.append("Exception during inform request send:  " + e + "\n");
            }
        }
        
    }
    
    
    
            
    
    
    public void processv1Trap(SNMPv1TrapPDU pdu) 
    {
        messagesArea.append("Got v1 trap:\n");
        
        messagesArea.append("  enterprise OID:     " + pdu.getEnterpriseOID().toString() + "\n");
        messagesArea.append("  agent address:      " + pdu.getAgentAddress().toString() + "\n");
        messagesArea.append("  generic trap:       " + pdu.getGenericTrap() + "\n");
        messagesArea.append("  specific trap:      " + pdu.getSpecificTrap() + "\n");
        messagesArea.append("  timestamp:          " + pdu.getTimestamp() + "\n");
        messagesArea.append("  supplementary vars: " + pdu.getVarBindList().toString() + "\n");
        
        messagesArea.append("\n");
        
    }
    
    
    
    public void processv2Trap(SNMPv2TrapPDU pdu) 
    {
        messagesArea.append("Got v2 trap:\n");
        
        messagesArea.append("  system uptime:      " + pdu.getSysUptime().toString() + "\n");
        messagesArea.append("  trap OID:           " + pdu.getSNMPTrapOID().toString() + "\n");
        messagesArea.append("  var bind list:      " + pdu.getVarBindList().toString() + "\n");
                
        messagesArea.append("\n");
        
    }
    
    
    
    public void processv2InformRequest(SNMPv2InformRequestPDU pdu) 
    {
        messagesArea.append("Got v2 inform request:\n");
        
        messagesArea.append("  system uptime:      " + pdu.getSysUptime().toString() + "\n");
        messagesArea.append("  trap OID:           " + pdu.getSNMPTrapOID().toString() + "\n");
        messagesArea.append("  var bind list:      " + pdu.getVarBindList().toString() + "\n");
                
        messagesArea.append("\n");
        
    }
    
    
    
    
    public void run()
    {
        int numChars;
        char[] charArray = new char[256];
        
        try
        {
            while (!readerThread.isInterrupted() && ((numChars = errorReader.read(charArray, 0, charArray.length)) != -1))
            {
                messagesArea.append("Problem receiving trap or inform:\n");
                messagesArea.append(new String(charArray, 0, numChars));
                messagesArea.append("\n\n");
            }
        }
        catch(IOException e)
        {
            messagesArea.append("Problem receiving errors; error reporter exiting!");
        }
    }
    
    
    
    
    
    
    
    public static void main(String args[]) 
    {
        try
        {
            SNMPTrapTest theApp = new SNMPTrapTest();
            theApp.pack();
            theApp.setSize(600,500);
            theApp.show();
        }
        catch (Exception e)
        {}
    }
    

}

⌨️ 快捷键说明

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