📄 snmpsample.java
字号:
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 + -