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

📄 snmpsample.java

📁 基于SNMP网络流量控制(java语言编写)
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
import java.awt.event.*;
import java.awt.*;
import snmp.*;
import java.math.*;
import java.lang.Number.*;
import java.net.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import javax.swing.border.*;
import javax.swing.table.*;
import java.util.*;
import java.lang.*;
import java.text.*;
 public class SNMPSample extends JFrame {
 int Num=0;
 int getNumber=0;
 int[] getCount=new int[100];
 int countNum=0;
  int treenodes=0;
 BigInteger[][] datas=new BigInteger[1024][1024];
 String[] ifDescr=new String[1024];
 BigInteger[] tempt=new BigInteger[10];
 BigInteger[] result=new BigInteger[10];
 BigInteger temp=new BigInteger("10000");
 JFrame f=new JFrame("SNMP网络设备监控程序 ");
 private Button b1=new Button("确定");
 private Button b2=new Button("重置");
 private Button b0=new Button("确定");
 public JTextField txt1;
 public JPasswordField txt2;
 private  JLabel l0=new JLabel();
 private  JLabel l1=new JLabel();
 private JLabel  l2=new JLabel();
 private  JLabel l3=new JLabel();
 private  JLabel l4=new JLabel();
 private  JLabel l5=new JLabel();
 private  JLabel l6=new JLabel();
 private Dialog dig=new Dialog(this,"结果显示",false);
 JPanel p,p0,dig0,dig1,dig2;
 JTextField getNum=new JTextField(10);
 JTextField getset1=new JTextField(10);
 JTextField getset2=new JTextField(10);
 JTextField getset3=new JTextField(10);
 JTextField getset4=new JTextField(10);
 JTextField getset5=new JTextField(10);
 JTextField getset6=new JTextField(10); 
 JTextField getset7=new JTextField(10);
 JTextField getset8=new JTextField(10); 
 JTextField getset9=new JTextField(10);
 JTextField getset10=new JTextField(10);
 JTabbedPane tab = new JTabbedPane(JTabbedPane.TOP);
 String s1,c1;
 String s0,c0;
 String[][] sgetset=new String[1024][1024];
 String[][] sgetresult=new String[1024][1024];
 String[][] sgetresultnow=new String[1024][1024];
 JPopupMenu Popup = null;
 //声明一个全局(Global)并设置初始值为null的JPopupMenu组件.
public SNMPSample()
{   
     super();
     initSnmpPanel();
     Actionlistener();
	}
 protected void  b1_actionPerformed(ActionEvent e){
    	         CenterPanel centerPanel = new CenterPanel();
      	         dig.add(centerPanel,BorderLayout.CENTER);
                 dig.add(dig2,BorderLayout.SOUTH);
     	          dig.addWindowListener(new WindowAdapter(){
                     public void windowClosing(WindowEvent e){
                      dig.dispose();
                      }
                 }); 
     	         dig.setSize(500,500);
                 dig.show();
                 f.dispose(); 
	       }
private void initSnmpPanel(){
	Container contentPane=f.getContentPane();
    f.setSize(380,300);
         contentPane.setLayout(null);
         Label l1=new Label("请输入IP地址:  ");
	 	 contentPane.add(l1);
	 	 txt1=new JTextField(10);
	 	 txt1.setText("");
	 	 contentPane.add(txt1); 
	 	 Label l0=new Label("请输入密码:");
	 	 contentPane.add(l0);
	 	 txt2=new JPasswordField(10);
	 	 txt2.setEchoChar('*');
	 	 txt2.setText(""); 	  
	 	 contentPane.add(txt2);
	 	 contentPane.add(b1);
	 	 contentPane.add(b2);
	 	 l1.setBounds(80,50,80,25);
	 	 l0.setBounds(80,120,80,25);
	 	 txt1.setBounds(170,50,80,25);
	 	 txt2.setBounds(170,120,80,25);
	 	 b1.setBounds(120,200,50,30);
	 	 b2.setBounds(180,200,50,30);
		 	 dig.setLayout(new BorderLayout());
         dig2=new JPanel();
	 	 dig2.add(b0);
	 	 f.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
     System.exit(0);
          }
   }); 
	 	 
	 	 f.show();	 
}
private void Actionlistener(){
	 b0.addActionListener(new ActionListener(){
	     public void actionPerformed(ActionEvent e){
	          dig.dispose();}
	            }  );
	 b1.addActionListener(new ActionListener(){
	             public void actionPerformed(ActionEvent e){
	                 s0=txt1.getText();
	 	             c0=txt2.getText();
	                 b1_actionPerformed(e);}
	                   }  );
	 b2.addActionListener(new ActionListener(){
	             public void actionPerformed(ActionEvent e){
	                 txt1.setText("");
	                 txt2.setText("");
	 }
});
	 }	
private String itemIDdone(String itemID,InetAddress hostAddress,String c2){
	        String community =c2;
	        int version = 1;
	        try
	         {
	        SNMPv1CommunicationInterface comInterface = new SNMPv1CommunicationInterface(version, hostAddress, community);
	        SNMPVarBindList newVars = comInterface.getMIBEntry(itemID);
            SNMPSequence pair = (SNMPSequence)(newVars.getSNMPObjectAt(0));
            SNMPObjectIdentifier snmpOID = (SNMPObjectIdentifier)pair.getSNMPObjectAt(0);
            SNMPObject snmpValue = pair.getSNMPObjectAt(1);
	        String s = snmpValue.toString();
	        return s;
	        }
	         catch(Exception ee)
	         {
	             System.out.println("Exception during SNMP operation:  " + ee + "\n");
	             return String.valueOf("0");
	         }
}
private BigInteger itemIDtime(String itemID,InetAddress hostAddress,String c2){
	        String community =c2;
	        int version = 1;
	        BigInteger time=new BigInteger("0");;
	        try
	         {
	        SNMPv1CommunicationInterface comInterface = new SNMPv1CommunicationInterface(version, hostAddress, community);
	        SNMPVarBindList newVars = comInterface.getMIBEntry(itemID);
            SNMPSequence pair = (SNMPSequence)(newVars.getSNMPObjectAt(0));
            SNMPObjectIdentifier snmpOID = (SNMPObjectIdentifier)pair.getSNMPObjectAt(0);
            SNMPObject snmpValue = pair.getSNMPObjectAt(1);
	        time = (BigInteger)snmpValue.getValue();
	        return time;
	        }
	         catch(Exception ee)
	         {
	             System.out.println("Exception during SNMP operation:  " + ee + "\n");
	             return time;
	         }
}
private int baseIDdone(String[] baseIDs,InetAddress hostAddress,String c2){
               String community =c2;
	                  int version = 1;
	                  int count=0;
	                 try{
	                 SNMPv1CommunicationInterface comInterface = new SNMPv1CommunicationInterface(version, hostAddress, community);
	                 SNMPVarBindList tableVars = comInterface.retrieveMIBTable(baseIDs);
	                 int flag=tableVars.size()/16;        //端口数
	                int m=0,n=0; 
	                for (int i = 0; i < tableVars.size(); i++)
	                 { 
	                    SNMPSequence   pair = (SNMPSequence)(tableVars.getSNMPObjectAt(i));
	                     SNMPObjectIdentifier  snmpOID = (SNMPObjectIdentifier)pair.getSNMPObjectAt(0);
	                     SNMPObject snmpValue = pair.getSNMPObjectAt(1);
	                  if(n<15)
	                    {
	                     BigInteger temp1 = (BigInteger)snmpValue.getValue();
	                     datas[m][n++]=temp1;
}
	                   else if(n==15)
	                    {
	                    ifDescr[count++] = snmpValue.toString();;
	                    n=0;
	                    m++;	
	                    }               	
	                 }
	                 return flag;
	}
	catch(Exception ee)
	         {
	             System.out.println("Exception during SNMP operation:  " + ee + "\n");
	            return 0;
	         }
}
private void getresultnow(int on){
	try{
	 System.out.println(c0+"***");
	             String    itemID = "1.3.6.1.2.1.1.3.0";
	             InetAddress hostAddress = InetAddress.getByName(s0);
	             BigInteger debug =itemIDtime(itemID,hostAddress, c0) ;
	 	 System.out.println(debug);
	 BigInteger term=new BigInteger("0");
	 if(on==1){
	 
	            int num=0;
	            int i=0;
	            int version = 1;    // SNMPv1
	             temp =debug ;
                  String[] baseIDs = {   "1.3.6.1.2.1.2.2.1.1","1.3.6.1.2.1.2.2.1.4","1.3.6.1.2.1.2.2.1.5",
	                                     "1.3.6.1.2.1.2.2.1.10","1.3.6.1.2.1.2.2.1.11","1.3.6.1.2.1.2.2.1.12",
	                                     "1.3.6.1.2.1.2.2.1.13","1.3.6.1.2.1.2.2.1.14","1.3.6.1.2.1.2.2.1.15",
	                                     "1.3.6.1.2.1.2.2.1.16","1.3.6.1.2.1.2.2.1.17","1.3.6.1.2.1.2.2.1.18",
	                                     "1.3.6.1.2.1.2.2.1.19","1.3.6.1.2.1.2.2.1.20","1.3.6.1.2.1.2.2.1.21"};
	           
	             baseIDdone( baseIDs, hostAddress, c0) ; 
	             
	             treenodes=baseIDdone( baseIDs, hostAddress, c0) ;
	             
	             for(num=0;num<treenodes;num++)
	            {  
	             resultshow(num,temp);
	               }
	               
	               on=0;
	 
	 }
}
   catch(Exception ee)
	         {
	             System.out.println("Exception during SNMP operation:  " + ee + "\n");
	         }  
           
}


private void resultshow(int num, BigInteger temp){
	           BigInteger[] tempnow= new BigInteger[10];
	           BigInteger[] resultnow= new BigInteger[10];
	           tempnow[0]=datas[num][3].multiply(new BigInteger("10000"));
	           tempnow[1]=datas[num][9].multiply(new BigInteger("10000"));
	           tempnow[2]=datas[num][5].multiply(new BigInteger("10000"));
	           tempnow[3]=datas[num][11].multiply(new BigInteger("10000"));
	           tempnow[4]=datas[num][4].multiply(new BigInteger("10000"));
	           tempnow[5]=datas[num][10].multiply(new BigInteger("10000"));
	           tempnow[6]=datas[num][6].multiply(new BigInteger("10000"));
	           tempnow[7]=datas[num][12].multiply(new BigInteger("10000"));
	           tempnow[8]=datas[num][7].multiply(new BigInteger("10000"));
	           tempnow[9]=datas[num][13].multiply(new BigInteger("10000"));
	           for(int c=0;c<10;c++)
	           { resultnow[c]=  tempnow[c].divide(temp);
	          
	           sgetresultnow[num][c]=resultnow[c].toString();
	          }
}

class CenterPanel extends JPanel 
    {
        public CenterPanel()
        {
        	
            JTabbedPane tab = new JTabbedPane(JTabbedPane.TOP);
            JPanel pane0  = new JPanel();
            String s1=s0;
	 	    String c1=c0;
	 	    JLabel l1=new JLabel();
            JLabel l2=new JLabel();
            JLabel l3=new JLabel();
            JLabel l4=new JLabel();
            JLabel l5=new JLabel();	    
	 	    try
	         {
	         	
	       
	             InetAddress hostAddress = InetAddress.getByName(s1);
	             String community =c1;
	             int version = 1;// SNMPv1
	             BigInteger temp=new BigInteger("10000");
	             BigInteger temp1=new BigInteger("10000");
	             String time1;
	             
	             SNMPv1CommunicationInterface comInterface = new SNMPv1CommunicationInterface(version, hostAddress, community);
	                  	             
	             String[] itemIDs = {"1.3.6.1.2.1.1.2.0", "1.3.6.1.2.1.1.3.0", "1.3.6.1.2.1.1.4.0", "1.3.6.1.2.1.1.5.0", "1.3.6.1.2.1.1.6.0"};

	             l1.setText("  所监控设备的IP地址: " + s1);

	             SNMPVarBindList newVars = comInterface.getMIBEntry(itemIDs);
	             
	             
	             for (int i = 0; i < newVars.size(); i++)
	             
	            { 
	          
	              String doo=itemIDdone(itemIDs[i],hostAddress,c1);
	             switch(i)
	                 {case 0:l2.setText("  代理软件标识: "  + doo);break;
	                  case 1:temp=itemIDtime(itemIDs[i],hostAddress, c1) ;
	                         temp=temp.divide(new BigInteger("100"));
	                         l3.setText("  SNMP代理已经运行的时间:     "  + temp+"   秒   ");break;
	                  case 2:l4.setText("  负责人信息:     "  + doo);break;
	                  case 3:l5.setText("  设备名称:  " + doo);break;
	                  case 4:l6.setText("  设备的物理位置: "  + doo);break;
	                 } 
	            } 
	       }
	 	    
	 	     catch(Exception ee)
	         {
	             System.out.println("Exception during SNMP operation:  " + ee + "\n");
	         }  

           pane0.setLayout(new GridLayout(6,1));
           pane0.add(l1);
           pane0.add(l2);
           pane0.add(l3);
           pane0.add(l4);
           pane0.add(l5);
           pane0.add(l6);
       
            JPopupMenu1 popupmenu=new JPopupMenu1();
           JPanel pane1  = new JPanel();
           pane1.add(popupmenu);

⌨️ 快捷键说明

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