`
avery_leo
  • 浏览: 388319 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

snmp4j获取数据agent实例(三)

    博客分类:
  • JAVA
阅读更多

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) {
				}
			}
		}
	}
}

 

分享到:
评论
1 楼 tom840520 2009-07-29  
很好,很强大,试着做做,支持楼主!

相关推荐

    如何利用snmp4j-agent在PC端模拟snmp服务

    本文将深入探讨如何使用SNMP4J-Agent工具在个人计算机上模拟SNMP服务,以便进行测试和开发。 SNMP4J-Agent是SNMP4J项目的一部分,是一个开源的Java库,用于实现SNMP代理功能。它提供了丰富的API,可以方便地构建...

    SNMP实例大全--snmp4j(get ,trap,set,取mib)

    本文将详细介绍SNMP实例,特别是通过Java库snmp4j实现的GET、GETNEXT、SET操作以及TRAP发送和MIB获取。 1. **SNMP基本概念** SNMP由三个主要组件构成:管理站(Manager)、代理(Agent)和管理信息库(MIB)。管理...

    snmp4j 文档 实例

    在“snmp4j获取数据实例.doc”文档中,我们将探讨如何利用 SNMP4J 库来获取网络设备的数据。这个实例将涵盖以下几个关键知识点: 1. **SNMP 协议基础** SNMP 由三个主要组件构成:管理站(Manager)、代理(Agent...

    nmi.rar_NMI java_nmi_snmp4j_snmp4j agent_snmp4j commerci

    要使用SNMP4J-Agent,首先需要了解SNMP协议的基础知识,包括PDU(协议数据单元)类型如GetRequest、SetRequest、Trap等,以及如何处理这些请求。然后,开发者需要定义MIB对象,这通常涉及到定义OID(对象标识符)和...

    snmp4j入门实例+snmp4j.jar+XPsnmp安装包

    这个压缩包包含了SNMP4J入门实例、SNMP4J的jar文件以及XP SNMP(Windows XP上的SNMP服务)的安装包,是学习和使用SNMP4J的好资源。 首先,SNMP4J入门实例提供了如何使用SNMP4J进行网络通信的基础知识。SNMP协议基于...

    snmp4j api文档

    **SNMP4J API文档详解** SNMP4J是一个开源的Java实现的简单网络管理协议(SNMP)库,它提供了全面的API用于开发SNMP应用程序。本文将深入解析SNMP4J API的核心概念和主要功能,帮助开发者理解和利用这个强大的工具...

    snmp4j包来读取snmp协议数据

    在Java环境中,我们通常会借助第三方库如SNMP4J来实现SNMP协议的数据读取和交互。SNMP4J是Java语言中广泛使用的SNMP API,它提供了全面的功能,支持SNMPv1、SNMPv2c和SNMPv3的各种操作。 首先,我们需要了解SNMP的...

    snmp4j开发包,强烈推荐

    SNMP4j库的核心组件包括Agent、Manager和PDU(协议数据单元)。Agent是网络设备上的软件,负责收集和提供设备的状态信息;Manager则是从Agent获取信息或对设备进行配置的客户端。PDU则是SNMP通信中的信息载体,包含...

    用SNMP4J实现的Trap源码

    SNMP4J是一个Java实现的SNMP协议库,它为开发者提供了全面的SNMP功能,包括发送Trap(陷阱)消息。Trap是SNMP中的一种通知机制,当网络设备发生异常或特定事件时,会主动向管理站发送Trap消息。 在这个项目中,"用...

    SNMP4J实例(简单易学的资料)

    在这个实例中,我们将深入探讨如何使用SNMP4J进行基本的SNMP操作。 首先,我们要了解SNMP的基本组件。在SNMP中,有三个主要角色: 1. **管理站(Manager)**:这是发起SNMP请求的客户端,通常是一个服务器或应用...

    snmp4j-2.3.0源码等

    SNMP4J是一个开源的Java实现的简单网络管理协议(SNMP)库,适用于开发SNMP应用程序。2.3.0版本是这个库的一个特定发行版,提供了对SNMP v1、v2c和v3的支持。在深入探讨SNMP4J的源码之前,我们需要先了解SNMP的基本...

    使用snmp4j实现Snmp功能

    1. **获取snmp4j库**:首先,你需要从snmp4j的官方网站(http://www.snmp4j.org/)下载所需的jar包,通常包括snmp4j.jar和snmp4j-agent.jar。 2. **初始化SNMP**:创建一个`Snmp`对象,这需要一个`TransportMapping...

    SNMP4J.jar.zip

    7. **SNMP应用实例**: SNMP4J可以用于各种场景,如网络监控工具、自动化运维系统、设备健康检查程序等。例如,你可以用它来定期检查网络设备的状态,当设备出现异常时,通过TRAP通知管理员,或者根据需要自动调整...

    SNMP4j学习开发例子及文档

    了解如何创建SNMP会话、发送GET、SET请求、接收TRAP、定义PDU(协议数据单元)以及处理响应是使用SNMP4j的关键。 5. **实例源码分析**:压缩包中的实例源码可以帮助你直观地理解SNMP4j的用法。通过阅读和运行这些...

    snmp4j-1.9.3d.zip

    SNMP4J是Java开发SNMP(简单网络管理协议)应用程序的一个开源库,它提供了全面的SNMP协议实现,包括v1、v2c和v3版本。在本文中,我们将深入探讨SNMP4J的核心功能、使用场景、以及如何通过这个库来实现网络设备的...

    snmp4j

    **SNMP4J详解** SNMP4J是一个用于Java平台的简单网络管理协议(SNMP)实现库。它为开发人员提供了一套完整的工具,以便于构建能够与SNMP设备进行通信的应用程序。SNMP是一种广泛使用的网络管理协议,允许系统管理员...

    snmp4j-2.7.0-distribution 最新jar包和源码

    使用SNMP4J,开发者可以创建SNMP代理(Agent),实现对设备的管理;也可以创建SNMP管理站(Manager),用于收集网络信息。库中包含的主要类和接口如下: 1. `Snmp`:这是SNMP4J的核心类,用于建立和管理SNMP会话,...

    snmp的安装包-在使用snmp4j时

    SNMP是基于Internet的管理框架的一部分,由三个主要组件构成:管理站(Manager)、代理(Agent)和管理信息库(MIB)。管理站通常是一个服务器或工作站,负责收集网络数据并执行管理操作。代理是安装在网络设备上的...

    SNMP4J JAR 与DOME

    7. **示例代码**:DOME通常指的是示例或演示,可能包含使用SNMP4J进行基本操作的Java代码,如获取设备信息、设置设备配置或监听陷阱(Trap)事件。 为了充分利用SNMP4J,你需要熟悉SNMP协议的基本概念,理解MIB结构...

    SNMP agent.rar_C语言_MIB实例_SNMP Agent_snmp table_snmp表格

    在这个“SNMP agent.rar”压缩包中,我们主要关注的是C语言实现的SNMP代理(SNMP Agent)以及MIB(Management Information Base)实例,特别是与SNMP表格(snmp table)相关的开发。 首先,SNMP代理是SNMP协议的...

Global site tag (gtag.js) - Google Analytics