agent代理端例子:
import java.util.*;
import org.snmp4j.*;
import org.snmp4j.smi.*;
//agent代理端例子:
public class Test2 {
public static class Handler implements org.snmp4j.CommandResponder {
protected java.lang.String mAddress = null;
protected int mPort = 0;
protected java.lang.String mMyCommunityName = null;
protected org.snmp4j.TransportMapping mServerSocket = null;
protected org.snmp4j.Snmp mSNMP = null;
public Handler() {
}
public void configure() {
mAddress = "192.168.10.191";
mPort = 161;
mMyCommunityName = "test";
}
public void start() {
try {
mServerSocket = new org.snmp4j.transport.DefaultUdpTransportMapping(
new org.snmp4j.smi.UdpAddress(java.net.InetAddress
.getByName(mAddress), mPort));
mSNMP = new org.snmp4j.Snmp(mServerSocket);
mSNMP.addCommandResponder(this);
mServerSocket.listen();
} catch (java.net.UnknownHostException vException) {
System.out.println(vException);
} catch (java.io.IOException vException) {
System.out.println(vException);
}
}
public synchronized void processPdu(
org.snmp4j.CommandResponderEvent aEvent) {
java.lang.String vCommunityName = new java.lang.String(aEvent
.getSecurityName());
System.out.println("Community name " + vCommunityName);
org.snmp4j.PDU vPDU = aEvent.getPDU();
if (vPDU == null) {
System.out.println("Null pdu");
} else {
System.out.println("(rcv) " + vPDU.toString());
switch (vPDU.getType()) {
case org.snmp4j.PDU.GET:
case org.snmp4j.PDU.GETNEXT:
break;
}
org.snmp4j.mp.StatusInformation statusInformation = new org.snmp4j.mp.StatusInformation();
org.snmp4j.mp.StateReference ref = aEvent.getStateReference();
try {
System.out.println("Sending response");
vPDU.setType(PDU.RESPONSE);
vPDU.set(0, new VariableBinding(vPDU.get(0).getOid(),
new OctetString("Test")));
aEvent.getMessageDispatcher().returnResponsePdu(
aEvent.getMessageProcessingModel(),
aEvent.getSecurityModel(),
aEvent.getSecurityName(),
aEvent.getSecurityLevel(), vPDU,
aEvent.getMaxSizeResponsePDU(), ref,
statusInformation);
} catch (org.snmp4j.MessageException vException) {
System.out.println(vException);
}
}
}
}
public static void main(String argv[]) {
Handler h = new Handler();
h.configure();
h.start();
/** Do nothing loop * */
while (true) {
synchronized (Test2.class) {
try {
Test2.class.wait();
} catch (Exception e) {
}
}
}
}
}
分享到:
相关推荐
本文将深入探讨如何使用SNMP4J-Agent工具在个人计算机上模拟SNMP服务,以便进行测试和开发。 SNMP4J-Agent是SNMP4J项目的一部分,是一个开源的Java库,用于实现SNMP代理功能。它提供了丰富的API,可以方便地构建...
本文将详细介绍SNMP实例,特别是通过Java库snmp4j实现的GET、GETNEXT、SET操作以及TRAP发送和MIB获取。 1. **SNMP基本概念** SNMP由三个主要组件构成:管理站(Manager)、代理(Agent)和管理信息库(MIB)。管理...
在“snmp4j获取数据实例.doc”文档中,我们将探讨如何利用 SNMP4J 库来获取网络设备的数据。这个实例将涵盖以下几个关键知识点: 1. **SNMP 协议基础** SNMP 由三个主要组件构成:管理站(Manager)、代理(Agent...
要使用SNMP4J-Agent,首先需要了解SNMP协议的基础知识,包括PDU(协议数据单元)类型如GetRequest、SetRequest、Trap等,以及如何处理这些请求。然后,开发者需要定义MIB对象,这通常涉及到定义OID(对象标识符)和...
这个压缩包包含了SNMP4J入门实例、SNMP4J的jar文件以及XP SNMP(Windows XP上的SNMP服务)的安装包,是学习和使用SNMP4J的好资源。 首先,SNMP4J入门实例提供了如何使用SNMP4J进行网络通信的基础知识。SNMP协议基于...
**SNMP4J API文档详解** SNMP4J是一个开源的Java实现的简单网络管理协议(SNMP)库,它提供了全面的API用于开发SNMP应用程序。本文将深入解析SNMP4J API的核心概念和主要功能,帮助开发者理解和利用这个强大的工具...
在Java环境中,我们通常会借助第三方库如SNMP4J来实现SNMP协议的数据读取和交互。SNMP4J是Java语言中广泛使用的SNMP API,它提供了全面的功能,支持SNMPv1、SNMPv2c和SNMPv3的各种操作。 首先,我们需要了解SNMP的...
SNMP4j库的核心组件包括Agent、Manager和PDU(协议数据单元)。Agent是网络设备上的软件,负责收集和提供设备的状态信息;Manager则是从Agent获取信息或对设备进行配置的客户端。PDU则是SNMP通信中的信息载体,包含...
SNMP4J是一个Java实现的SNMP协议库,它为开发者提供了全面的SNMP功能,包括发送Trap(陷阱)消息。Trap是SNMP中的一种通知机制,当网络设备发生异常或特定事件时,会主动向管理站发送Trap消息。 在这个项目中,"用...
在这个实例中,我们将深入探讨如何使用SNMP4J进行基本的SNMP操作。 首先,我们要了解SNMP的基本组件。在SNMP中,有三个主要角色: 1. **管理站(Manager)**:这是发起SNMP请求的客户端,通常是一个服务器或应用...
SNMP4J是一个开源的Java实现的简单网络管理协议(SNMP)库,适用于开发SNMP应用程序。2.3.0版本是这个库的一个特定发行版,提供了对SNMP v1、v2c和v3的支持。在深入探讨SNMP4J的源码之前,我们需要先了解SNMP的基本...
1. **获取snmp4j库**:首先,你需要从snmp4j的官方网站(http://www.snmp4j.org/)下载所需的jar包,通常包括snmp4j.jar和snmp4j-agent.jar。 2. **初始化SNMP**:创建一个`Snmp`对象,这需要一个`TransportMapping...
7. **SNMP应用实例**: SNMP4J可以用于各种场景,如网络监控工具、自动化运维系统、设备健康检查程序等。例如,你可以用它来定期检查网络设备的状态,当设备出现异常时,通过TRAP通知管理员,或者根据需要自动调整...
了解如何创建SNMP会话、发送GET、SET请求、接收TRAP、定义PDU(协议数据单元)以及处理响应是使用SNMP4j的关键。 5. **实例源码分析**:压缩包中的实例源码可以帮助你直观地理解SNMP4j的用法。通过阅读和运行这些...
SNMP4J是Java开发SNMP(简单网络管理协议)应用程序的一个开源库,它提供了全面的SNMP协议实现,包括v1、v2c和v3版本。在本文中,我们将深入探讨SNMP4J的核心功能、使用场景、以及如何通过这个库来实现网络设备的...
**SNMP4J详解** SNMP4J是一个用于Java平台的简单网络管理协议(SNMP)实现库。它为开发人员提供了一套完整的工具,以便于构建能够与SNMP设备进行通信的应用程序。SNMP是一种广泛使用的网络管理协议,允许系统管理员...
使用SNMP4J,开发者可以创建SNMP代理(Agent),实现对设备的管理;也可以创建SNMP管理站(Manager),用于收集网络信息。库中包含的主要类和接口如下: 1. `Snmp`:这是SNMP4J的核心类,用于建立和管理SNMP会话,...
SNMP是基于Internet的管理框架的一部分,由三个主要组件构成:管理站(Manager)、代理(Agent)和管理信息库(MIB)。管理站通常是一个服务器或工作站,负责收集网络数据并执行管理操作。代理是安装在网络设备上的...
7. **示例代码**:DOME通常指的是示例或演示,可能包含使用SNMP4J进行基本操作的Java代码,如获取设备信息、设置设备配置或监听陷阱(Trap)事件。 为了充分利用SNMP4J,你需要熟悉SNMP协议的基本概念,理解MIB结构...
在这个“SNMP agent.rar”压缩包中,我们主要关注的是C语言实现的SNMP代理(SNMP Agent)以及MIB(Management Information Base)实例,特别是与SNMP表格(snmp table)相关的开发。 首先,SNMP代理是SNMP协议的...