SnmpUtilSendTrap.java
5.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package com.sitech.ismp.snmp;
import org.snmp4j.CommunityTarget;
import org.snmp4j.PDU;
import org.snmp4j.Snmp;
import org.snmp4j.TransportMapping;
import org.snmp4j.event.ResponseEvent;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.smi.*;
import org.snmp4j.transport.DefaultUdpTransportMapping;
import java.io.IOException;
import java.util.ResourceBundle;
import java.util.Vector;
/**
* 本类用于向管理进程发送Trap信息
*
* @author
*
*/
public class SnmpUtilSendTrap {
private Snmp snmp = null;
private Address targetAddress = null;
public void initComm() throws IOException {
// 设置管理进程的IP和端口
//targetAddress = GenericAddress.parse("udp:127.0.0.1/21162");
//targetAddress = GenericAddress.parse("udp:10.110.16.203/21162");
ResourceBundle snmpConfig = ResourceBundle.getBundle("snmp");
// 在snmp.properties获得snmp配置参数
String ip = snmpConfig.getString("ip");
String strport = snmpConfig.getString("port");
String snmppath = "udp:" + ip + "/" + strport;
targetAddress = GenericAddress.parse(snmppath);
TransportMapping transport = new DefaultUdpTransportMapping();
snmp = new Snmp(transport);
transport.listen();
}
/**
* 向管理进程发送Trap报文
*
* @throws java.io.IOException
*/
public void sendPDU() throws IOException {
// 设置 target
CommunityTarget target = new CommunityTarget();
target.setAddress(targetAddress);
// 通信不成功时的重试次数
target.setRetries(2);
// 超时时间
target.setTimeout(1500);
// snmp版本
target.setVersion(SnmpConstants.version2c);
// 创建 PDU
PDU pdu = new PDU();
pdu.add(new VariableBinding(new OID(".1.3.6.1.4.1.42.2.95.0.6.0")));
pdu.add(new VariableBinding(new OID(".1.3.6.1.4.1.42.2.95.1.3.1.0")));
pdu.add(new VariableBinding(new OID(".1.3.6.1.4.1.42.2.95.1.3.2.0")));
pdu.add(new VariableBinding(new OID(".1.3.6.1.4.1.42.2.95.1.3.3.0")));
pdu.add(new VariableBinding(new OID(".1.3.6.1.4.1.42.2.95.1.3.4.0")));
pdu.add(new VariableBinding(new OID(".1.3.6.1.4.1.42.2.95.1.3.5.0")));
pdu.add(new VariableBinding(new OID(".1.3.6.1.4.1.42.2.95.1.3.6.0")));
pdu.add(new VariableBinding(new OID(".1.3.6.1.4.1.42.2.95.1.3.7.0")));
pdu.add(new VariableBinding(new OID("1.3.6.1.6.3.1.1.4.1.0"),
new OctetString("1.3.6.1.4.1.2011.2.15.2.4.3.3.0.1")));
System.out.println("pdu is:"+pdu);
pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.1.0"),
new OctetString("6254001")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.2.0"),
// new OctetString("1")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.3.0"),
// new OctetString("2009-04-29 13:41:29")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.4.0"),
// new OctetString("C5505-2")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.5.0"),
// new OctetString("5")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.6.0"),
// new OctetString("6000")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.7.0"),
// new OctetString("1337")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.8.0"),
// new OctetString("1")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.9.0"),
// new OctetString("506")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.10.0"),
// new OctetString("1")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.11.0"),
// new OctetString("1")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.12.0"),
// new OctetString("1")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.13.0"),
// new OctetString("1")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.14.0"),
// new OctetString("1")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.15.0"),
// new OctetString("1")));
// pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.2011.2.15.2.4.3.3.16.0"),
// new OctetString("你哦好")));
pdu.setType(PDU.TRAP);
// 向Agent发送PDU,并接收Response
ResponseEvent respEvnt = snmp.send(pdu, target);
// 解析Response
System.out.println(respEvnt==null);
if (respEvnt != null && respEvnt.getResponse() != null) {
Vector recVBs = respEvnt.getResponse()
.getVariableBindings();
for (int i = 0; i < recVBs.size(); i++) {
VariableBinding recVB =(VariableBinding) recVBs.elementAt(i);
System.out.println(recVB.getOid() + " : " + recVB.getVariable());
}
}
}
public static void main(String[] args) {
System.out.println("print the main in the trap!");
try {
SnmpUtilSendTrap util = new SnmpUtilSendTrap();
util.initComm();
util.sendPDU();
} catch (IOException e) {
e.printStackTrace();
}
}
}