- 浏览: 394793 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
xxbb77:
说的有点道理
保持好奇心,把时间花在刀刃上 -
JavaAiHaoZhezh:
有时候需要学会放手,别让自己太劳累 -
1011729483:
你好:楼主我想请问一下刚开始你访问项目进去login.jsp页 ...
菜鸟-手把手教你把Acegi应用到实际项目中(2) -
zhglance:
很赞,胜过好多出版物
程序员必备:Linux日常维护命令 -
zizhi9999:
为什么我的总是说timeout呢 很急 啊
利用SNMP获取、走访节点值
下面是两个用于发送和接收Trap报文信息的类:
import java.io.IOException; import java.net.UnknownHostException; import java.util.Vector; import org.snmp4j.CommandResponder; import org.snmp4j.CommandResponderEvent; import org.snmp4j.MessageDispatcherImpl; import org.snmp4j.Snmp; import org.snmp4j.TransportMapping; import org.snmp4j.mp.MPv1; import org.snmp4j.mp.MPv2c; import org.snmp4j.mp.MPv3; import org.snmp4j.security.SecurityModels; import org.snmp4j.security.SecurityProtocols; import org.snmp4j.security.USM; import org.snmp4j.smi.Address; import org.snmp4j.smi.GenericAddress; import org.snmp4j.smi.OctetString; import org.snmp4j.smi.TcpAddress; import org.snmp4j.smi.UdpAddress; import org.snmp4j.smi.VariableBinding; import org.snmp4j.transport.DefaultTcpTransportMapping; import org.snmp4j.transport.DefaultUdpTransportMapping; import org.snmp4j.util.MultiThreadedMessageDispatcher; import org.snmp4j.util.ThreadPool; /** * 本类用于监听代理进程的Trap信息 * * @author zhanjia * */ public class MultiThreadedTrapReceiver implements CommandResponder { private MultiThreadedMessageDispatcher dispatcher; private Snmp snmp = null; private Address listenAddress; private ThreadPool threadPool; public MultiThreadedTrapReceiver() { // BasicConfigurator.configure(); } private void init() throws UnknownHostException, IOException { threadPool = ThreadPool.create("Trap", 2); dispatcher = new MultiThreadedMessageDispatcher(threadPool, new MessageDispatcherImpl()); listenAddress = GenericAddress.parse(System.getProperty( "snmp4j.listenAddress", "udp:192.168.1.23/162")); // 本地IP与监听端口 TransportMapping transport; // 对TCP与UDP协议进行处理 if (listenAddress instanceof UdpAddress) { transport = new DefaultUdpTransportMapping( (UdpAddress) listenAddress); } else { transport = new DefaultTcpTransportMapping( (TcpAddress) listenAddress); } snmp = new Snmp(dispatcher, transport); snmp.getMessageDispatcher().addMessageProcessingModel(new MPv1()); snmp.getMessageDispatcher().addMessageProcessingModel(new MPv2c()); snmp.getMessageDispatcher().addMessageProcessingModel(new MPv3()); USM usm = new USM(SecurityProtocols.getInstance(), new OctetString(MPv3 .createLocalEngineID()), 0); SecurityModels.getInstance().addSecurityModel(usm); snmp.listen(); } public void run() { try { init(); snmp.addCommandResponder(this); System.out.println("开始监听Trap信息!"); } catch (Exception ex) { ex.printStackTrace(); } } /** * 实现CommandResponder的processPdu方法, 用于处理传入的请求、PDU等信息 * 当接收到trap时,会自动进入这个方法 * * @param respEvnt */ public void processPdu(CommandResponderEvent respEvnt) { // 解析Response if (respEvnt != null && respEvnt.getPDU() != null) { Vector<VariableBinding> recVBs = respEvnt.getPDU().getVariableBindings(); for (int i = 0; i < recVBs.size(); i++) { VariableBinding recVB = recVBs.elementAt(i); System.out.println(recVB.getOid() + " : " + recVB.getVariable()); } } } public static void main(String[] args) { MultiThreadedTrapReceiver multithreadedtrapreceiver = new MultiThreadedTrapReceiver(); multithreadedtrapreceiver.run(); } }
import java.io.IOException; import java.util.Vector; 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.Address; import org.snmp4j.smi.GenericAddress; import org.snmp4j.smi.OID; import org.snmp4j.smi.OctetString; import org.snmp4j.smi.VariableBinding; import org.snmp4j.transport.DefaultUdpTransportMapping; /** * 本类用于向管理进程发送Trap信息 * * @author zhanjia * */ public class SnmpUtilSendTrap { private Snmp snmp = null; private Address targetAddress = null; public void initComm() throws IOException { // 设置管理进程的IP和端口 targetAddress = GenericAddress.parse("udp:192.168.1.23/162"); TransportMapping transport = new DefaultUdpTransportMapping(); snmp = new Snmp(transport); transport.listen(); } /** * 向管理进程发送Trap报文 * * @throws 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.2.3377.10.1.1.1.1"), new OctetString("SnmpTrap"))); pdu.add(new VariableBinding(new OID(".1.3.6.1.2.3377.10.1.1.1.2"), new OctetString("JavaEE"))); pdu.setType(PDU.TRAP); // 向Agent发送PDU,并接收Response ResponseEvent respEvnt = snmp.send(pdu, target); // 解析Response if (respEvnt != null && respEvnt.getResponse() != null) { Vector<VariableBinding> recVBs = respEvnt.getResponse() .getVariableBindings(); for (int i = 0; i < recVBs.size(); i++) { VariableBinding recVB = recVBs.elementAt(i); System.out.println(recVB.getOid() + " : " + recVB.getVariable()); } } } public static void main(String[] args) { try { SnmpUtilSendTrap util = new SnmpUtilSendTrap(); util.initComm(); util.sendPDU(); } catch (IOException e) { e.printStackTrace(); } } }
1、运行MultiThreadedTrapReceiver类,提示“开始监听Trap信息!”并处理监听状态
2、运行SnmpUtilSendTrap类,运行完毕后,将会在“开始监听Trap信息!”后面显示:
1.3.6.1.2.3377.10.1.1.1.1 : SnmpTrap
1.3.6.1.2.3377.10.1.1.1.2 : JavaEE
MultiThreadedTrapReceiver输出面板中显示以上两行即表示测试成功!
说明:
本例只在本人电脑上测试过,操作系统为Windows
评论
9 楼
zhanjia
2013-05-17
windseamless 写道
为什么我使用这两段代码总是没有结果,而且会报错呢
首先确保要监测的目标安装并启用了SNMP服务
8 楼
windseamless
2013-05-17
为什么我使用这两段代码总是没有结果,而且会报错呢
7 楼
pch272215690
2012-05-18
这两段代码我们还在用,支持。。。
6 楼
berlou
2009-11-11
做网络监控是很有前途的, 云计算服务商将来将非常依赖网络监控系统。庞大的计算机集群和网络资源是需要非常好的监控系统的。
5 楼
herry
2009-11-11
那就处于等待状态啊,类似数据库的连接池差不多,如果都消耗光了,那只能一个个排队了
4 楼
slf616
2009-11-10
谢谢你的示例!!我现在有个疑问:threadPool = ThreadPool.create("Trap", 2);
上面这句是使用线程池创建了2个等待trap的线程,如果成千个trap发送过来,这两个线程都被用光了,会出现什么情况?? 线程池会不会自动增加线程?? 谢谢!
上面这句是使用线程池创建了2个等待trap的线程,如果成千个trap发送过来,这两个线程都被用光了,会出现什么情况?? 线程池会不会自动增加线程?? 谢谢!
3 楼
herry
2009-08-27
<div class="quote_title"><span><span>SnmpUtilSendTrap 中冒失必须得设置 sysTime和trapId吧</span></span></div>
<div class="quote_title"> //必须设定第一个变量为sysUpTime<br> pdu.add(new VariableBinding(SnmpConstants.sysUpTime, new TimeTicks(new UnsignedInteger32(1000).toLong())));<br><br> //设定第二个变量snmpTrapOID<br> pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID, new OID(".1.2.156.112546.16.0.1")));<br>
</div>
<div class="quote_title">否者的话,会出现解析不了的错误。</div>
<div class="quote_title">另外Trap没有返回信息,所以也没必要处理 Response<br>
</div>
<div class="quote_title">zhanjia 写道</div>
<div class="quote_div">
<p>下面是两个用于发送和接收Trap报文信息的类:</p>
<p> </p>
<pre name="code" class="java">import java.io.IOException;
import java.net.UnknownHostException;
import java.util.Vector;
import org.snmp4j.CommandResponder;
import org.snmp4j.CommandResponderEvent;
import org.snmp4j.MessageDispatcherImpl;
import org.snmp4j.Snmp;
import org.snmp4j.TransportMapping;
import org.snmp4j.mp.MPv1;
import org.snmp4j.mp.MPv2c;
import org.snmp4j.mp.MPv3;
import org.snmp4j.security.SecurityModels;
import org.snmp4j.security.SecurityProtocols;
import org.snmp4j.security.USM;
import org.snmp4j.smi.Address;
import org.snmp4j.smi.GenericAddress;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.TcpAddress;
import org.snmp4j.smi.UdpAddress;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultTcpTransportMapping;
import org.snmp4j.transport.DefaultUdpTransportMapping;
import org.snmp4j.util.MultiThreadedMessageDispatcher;
import org.snmp4j.util.ThreadPool;
/**
* 本类用于监听代理进程的Trap信息
*
* @author zhanjia
*
*/
public class MultiThreadedTrapReceiver implements CommandResponder {
private MultiThreadedMessageDispatcher dispatcher;
private Snmp snmp = null;
private Address listenAddress;
private ThreadPool threadPool;
public MultiThreadedTrapReceiver() {
// BasicConfigurator.configure();
}
private void init() throws UnknownHostException, IOException {
threadPool = ThreadPool.create("Trap", 2);
dispatcher = new MultiThreadedMessageDispatcher(threadPool,
new MessageDispatcherImpl());
listenAddress = GenericAddress.parse(System.getProperty(
"snmp4j.listenAddress", "udp:192.168.1.23/162")); // 本地IP与监听端口
TransportMapping transport;
// 对TCP与UDP协议进行处理
if (listenAddress instanceof UdpAddress) {
transport = new DefaultUdpTransportMapping(
(UdpAddress) listenAddress);
} else {
transport = new DefaultTcpTransportMapping(
(TcpAddress) listenAddress);
}
snmp = new Snmp(dispatcher, transport);
snmp.getMessageDispatcher().addMessageProcessingModel(new MPv1());
snmp.getMessageDispatcher().addMessageProcessingModel(new MPv2c());
snmp.getMessageDispatcher().addMessageProcessingModel(new MPv3());
USM usm = new USM(SecurityProtocols.getInstance(), new OctetString(MPv3
.createLocalEngineID()), 0);
SecurityModels.getInstance().addSecurityModel(usm);
snmp.listen();
}
public void run() {
try {
init();
snmp.addCommandResponder(this);
System.out.println("开始监听Trap信息!");
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 实现CommandResponder的processPdu方法, 用于处理传入的请求、PDU等信息
* 当接收到trap时,会自动进入这个方法
*
* @param respEvnt
*/
public void processPdu(CommandResponderEvent respEvnt) {
// 解析Response
if (respEvnt != null && respEvnt.getPDU() != null) {
Vector<VariableBinding> recVBs = respEvnt.getPDU().getVariableBindings();
for (int i = 0; i < recVBs.size(); i++) {
VariableBinding recVB = recVBs.elementAt(i);
System.out.println(recVB.getOid() + " : " + recVB.getVariable());
}
}
}
public static void main(String[] args) {
MultiThreadedTrapReceiver multithreadedtrapreceiver = new MultiThreadedTrapReceiver();
multithreadedtrapreceiver.run();
}
}</pre>
<p> </p>
<p> </p>
<pre name="code" class="java">import java.io.IOException;
import java.util.Vector;
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.Address;
import org.snmp4j.smi.GenericAddress;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultUdpTransportMapping;
/**
* 本类用于向管理进程发送Trap信息
*
* @author zhanjia
*
*/
public class SnmpUtilSendTrap {
private Snmp snmp = null;
private Address targetAddress = null;
public void initComm() throws IOException {
// 设置管理进程的IP和端口
targetAddress = GenericAddress.parse("udp:192.168.1.23/162");
TransportMapping transport = new DefaultUdpTransportMapping();
snmp = new Snmp(transport);
transport.listen();
}
/**
* 向管理进程发送Trap报文
*
* @throws 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.2.3377.10.1.1.1.1"),
new OctetString("SnmpTrap")));
pdu.add(new VariableBinding(new OID(".1.3.6.1.2.3377.10.1.1.1.2"),
new OctetString("JavaEE")));
pdu.setType(PDU.TRAP);
// 向Agent发送PDU,并接收Response
ResponseEvent respEvnt = snmp.send(pdu, target);
// 解析Response
if (respEvnt != null && respEvnt.getResponse() != null) {
Vector<VariableBinding> recVBs = respEvnt.getResponse()
.getVariableBindings();
for (int i = 0; i < recVBs.size(); i++) {
VariableBinding recVB = recVBs.elementAt(i);
System.out.println(recVB.getOid() + " : " + recVB.getVariable());
}
}
}
public static void main(String[] args) {
try {
SnmpUtilSendTrap util = new SnmpUtilSendTrap();
util.initComm();
util.sendPDU();
} catch (IOException e) {
e.printStackTrace();
}
}
}</pre>
<p> </p>
<p> </p>
<p>1、运行MultiThreadedTrapReceiver类,提示“开始监听Trap信息!”并处理监听状态</p>
<p>2、运行SnmpUtilSendTrap类,运行完毕后,将会在“开始监听Trap信息!”后面显示:</p>
<p>1.3.6.1.2.3377.10.1.1.1.1 : SnmpTrap<br>1.3.6.1.2.3377.10.1.1.1.2 : JavaEE</p>
<p>MultiThreadedTrapReceiver输出面板中显示以上两行即表示测试成功!</p>
<p> </p>
<p>说明:</p>
<p> 本例只在本人电脑上测试过,操作系统为Windows</p>
<p> </p>
</div>
<p> </p>
<div class="quote_title"> //必须设定第一个变量为sysUpTime<br> pdu.add(new VariableBinding(SnmpConstants.sysUpTime, new TimeTicks(new UnsignedInteger32(1000).toLong())));<br><br> //设定第二个变量snmpTrapOID<br> pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID, new OID(".1.2.156.112546.16.0.1")));<br>
</div>
<div class="quote_title">否者的话,会出现解析不了的错误。</div>
<div class="quote_title">另外Trap没有返回信息,所以也没必要处理 Response<br>
</div>
<div class="quote_title">zhanjia 写道</div>
<div class="quote_div">
<p>下面是两个用于发送和接收Trap报文信息的类:</p>
<p> </p>
<pre name="code" class="java">import java.io.IOException;
import java.net.UnknownHostException;
import java.util.Vector;
import org.snmp4j.CommandResponder;
import org.snmp4j.CommandResponderEvent;
import org.snmp4j.MessageDispatcherImpl;
import org.snmp4j.Snmp;
import org.snmp4j.TransportMapping;
import org.snmp4j.mp.MPv1;
import org.snmp4j.mp.MPv2c;
import org.snmp4j.mp.MPv3;
import org.snmp4j.security.SecurityModels;
import org.snmp4j.security.SecurityProtocols;
import org.snmp4j.security.USM;
import org.snmp4j.smi.Address;
import org.snmp4j.smi.GenericAddress;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.TcpAddress;
import org.snmp4j.smi.UdpAddress;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultTcpTransportMapping;
import org.snmp4j.transport.DefaultUdpTransportMapping;
import org.snmp4j.util.MultiThreadedMessageDispatcher;
import org.snmp4j.util.ThreadPool;
/**
* 本类用于监听代理进程的Trap信息
*
* @author zhanjia
*
*/
public class MultiThreadedTrapReceiver implements CommandResponder {
private MultiThreadedMessageDispatcher dispatcher;
private Snmp snmp = null;
private Address listenAddress;
private ThreadPool threadPool;
public MultiThreadedTrapReceiver() {
// BasicConfigurator.configure();
}
private void init() throws UnknownHostException, IOException {
threadPool = ThreadPool.create("Trap", 2);
dispatcher = new MultiThreadedMessageDispatcher(threadPool,
new MessageDispatcherImpl());
listenAddress = GenericAddress.parse(System.getProperty(
"snmp4j.listenAddress", "udp:192.168.1.23/162")); // 本地IP与监听端口
TransportMapping transport;
// 对TCP与UDP协议进行处理
if (listenAddress instanceof UdpAddress) {
transport = new DefaultUdpTransportMapping(
(UdpAddress) listenAddress);
} else {
transport = new DefaultTcpTransportMapping(
(TcpAddress) listenAddress);
}
snmp = new Snmp(dispatcher, transport);
snmp.getMessageDispatcher().addMessageProcessingModel(new MPv1());
snmp.getMessageDispatcher().addMessageProcessingModel(new MPv2c());
snmp.getMessageDispatcher().addMessageProcessingModel(new MPv3());
USM usm = new USM(SecurityProtocols.getInstance(), new OctetString(MPv3
.createLocalEngineID()), 0);
SecurityModels.getInstance().addSecurityModel(usm);
snmp.listen();
}
public void run() {
try {
init();
snmp.addCommandResponder(this);
System.out.println("开始监听Trap信息!");
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 实现CommandResponder的processPdu方法, 用于处理传入的请求、PDU等信息
* 当接收到trap时,会自动进入这个方法
*
* @param respEvnt
*/
public void processPdu(CommandResponderEvent respEvnt) {
// 解析Response
if (respEvnt != null && respEvnt.getPDU() != null) {
Vector<VariableBinding> recVBs = respEvnt.getPDU().getVariableBindings();
for (int i = 0; i < recVBs.size(); i++) {
VariableBinding recVB = recVBs.elementAt(i);
System.out.println(recVB.getOid() + " : " + recVB.getVariable());
}
}
}
public static void main(String[] args) {
MultiThreadedTrapReceiver multithreadedtrapreceiver = new MultiThreadedTrapReceiver();
multithreadedtrapreceiver.run();
}
}</pre>
<p> </p>
<p> </p>
<pre name="code" class="java">import java.io.IOException;
import java.util.Vector;
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.Address;
import org.snmp4j.smi.GenericAddress;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultUdpTransportMapping;
/**
* 本类用于向管理进程发送Trap信息
*
* @author zhanjia
*
*/
public class SnmpUtilSendTrap {
private Snmp snmp = null;
private Address targetAddress = null;
public void initComm() throws IOException {
// 设置管理进程的IP和端口
targetAddress = GenericAddress.parse("udp:192.168.1.23/162");
TransportMapping transport = new DefaultUdpTransportMapping();
snmp = new Snmp(transport);
transport.listen();
}
/**
* 向管理进程发送Trap报文
*
* @throws 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.2.3377.10.1.1.1.1"),
new OctetString("SnmpTrap")));
pdu.add(new VariableBinding(new OID(".1.3.6.1.2.3377.10.1.1.1.2"),
new OctetString("JavaEE")));
pdu.setType(PDU.TRAP);
// 向Agent发送PDU,并接收Response
ResponseEvent respEvnt = snmp.send(pdu, target);
// 解析Response
if (respEvnt != null && respEvnt.getResponse() != null) {
Vector<VariableBinding> recVBs = respEvnt.getResponse()
.getVariableBindings();
for (int i = 0; i < recVBs.size(); i++) {
VariableBinding recVB = recVBs.elementAt(i);
System.out.println(recVB.getOid() + " : " + recVB.getVariable());
}
}
}
public static void main(String[] args) {
try {
SnmpUtilSendTrap util = new SnmpUtilSendTrap();
util.initComm();
util.sendPDU();
} catch (IOException e) {
e.printStackTrace();
}
}
}</pre>
<p> </p>
<p> </p>
<p>1、运行MultiThreadedTrapReceiver类,提示“开始监听Trap信息!”并处理监听状态</p>
<p>2、运行SnmpUtilSendTrap类,运行完毕后,将会在“开始监听Trap信息!”后面显示:</p>
<p>1.3.6.1.2.3377.10.1.1.1.1 : SnmpTrap<br>1.3.6.1.2.3377.10.1.1.1.2 : JavaEE</p>
<p>MultiThreadedTrapReceiver输出面板中显示以上两行即表示测试成功!</p>
<p> </p>
<p>说明:</p>
<p> 本例只在本人电脑上测试过,操作系统为Windows</p>
<p> </p>
</div>
<p> </p>
2 楼
tom840520
2009-07-29
啥都不说,就是支持!
1 楼
zousch
2009-04-21
http://publib.boulder.ibm.com/infocenter/tivihelp/v8r1/index.jsp?topic=/com.ibm.netcool_OMNIbus.doc/gateways/snmp/snmp/wip/concept/snmp_intro.html
有人做过这方面吗?
有人做过这方面吗?
相关推荐
vc++ snmp trap例子 源码
利用SNMP#NET做的trap接收器例子
NULL 博文链接:https://jyao.iteye.com/blog/357216
snmp例子程序dgf inform/trap
基于VS下的C++ SNMP实例程序,带SNMP库源码,LIB及其编译方法文档,DEMO均测试通过(包括获取OID和TRAP服务)。
3.1. 完整的一套SNMP C++类 3.2. SNMP内存的自动管理 3.3. 简单易用的 3.4. 强大灵活的 3.5. 可移植对象的 3.6. 自动超时和重发机制 3.7. 阻塞模式 3.8. 异步的非阻塞模式 3.9. Notification、Trap的收发 3.10. 通过...
Windows上实现snmp发送与接收的例子程序,发送的例子是发送的trap,接收例子是接收后提取出数据包中的oid等数据
SNMP陷阱的Golang工具 gosnmptrap是用于Go(Golang)的开源SNMP陷阱服务器库。 这使您可以设置陷阱服务器以从设备(例如思科交换机)接收陷阱。 到现在为止,gosnmptrap支持 Snmp V1陷阱 Snmp V2陷阱 安装 最简单...
自己总结的net-snmp代理的开发,包括叶子,表以及trap的代码.MIB是自己写得一个最简单的例子,功能都实现了.
这是一个snmp agent开发包,完全支持snmpv1和snmpv2c(目前暂时不支持Counter64)的 各种操作包括get,getnext,getbulk,set和v1,v2两种Trap。用户编写程序时不需考虑协议 细节,程序框架由mib编译器自动生成,使用...
senp get set trap例子程序
《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输...
29.6.4 例子:服务器崩溃 358 29.6.5 等幂过程 360 29.7 第3版的NFS 360 29.8 小结 361 第30章 其他的TCP/IP应用程序 363 30.1 引言 363 30.2 Finger协议 363 30.3 Whois协议 364 30.4 Archie、WAIS、Gopher、...
29.6.4 例子:服务器崩溃 358 29.6.5 等幂过程 360 29.7 第3版的NFS 360 29.8 小结 361 第30章 其他的TCP/IP应用程序 363 30.1 引言 363 30.2 Finger协议 363 30.3 Whois协议 364 30.4 Archie、WAIS、Gopher、...
29.6.4 例子:服务器崩溃 358 29.6.5 等幂过程 360 29.7 第3版的NFS 360 29.8 小结 361 第30章 其他的TCP/IP应用程序 363 30.1 引言 363 30.2 Finger协议 363 30.3 Whois协议 364 30.4 Archie、WAIS、Gopher、...
29.6.4 例子:服务器崩溃 358 29.6.5 等幂过程 360 29.7 第3版的NFS 360 29.8 小结 361 第30章 其他的TCP/IP应用程序 363 30.1 引言 363 30.2 Finger协议 363 30.3 Whois协议 364 30.4 Archie、WAIS、Gopher、...
29.6.4 例子:服务器崩溃 358 29.6.5 等幂过程 360 29.7 第3版的NFS 360 29.8 小结 361 第30章 其他的TCP/IP应用程序 363 30.1 引言 363 30.2 Finger协议 363 30.3 Whois协议 364 30.4 Archie、WAIS、Gopher、...
29.6.4 例子:服务器崩溃 358 29.6.5 等幂过程 360 29.7 第3版的NFS 360 29.8 小结 361 第30章 其他的TCP/IP应用程序 363 30.1 引言 363 30.2 Finger协议 363 30.3 Whois协议 364 30.4 Archie、WAIS、Gopher、...