ObjectSNMP借鉴了数据库领域的O-R Mapping技术,采用O/M Mapping。其原理是和O/R Mapping一样的。
先根据SNMP MIB定义一个JAVA对象,然后通过ObjectSNMP API基于对象的添加、删除、修改操作就可以了。
下面的例子,就是使用ObjectSNMP获取RFC1213-MIB的例子:其中的system和ifTable对象就是对应的SNMP MIB中的system组合interface中的ifTable表。
public class TestMibMapping
{
SNMPAPI snmpapi;
SNMPNodeParam nodeParam;
public TestMibMapping()
{
try
{
/**
* 初始化系统日志文件。
*/
MyLog.initLogParam("SNMPTest");
//使用客户端模式。需要先启用ObjectSNMP的RMI服务(例如:运行RMISNMPServer.java)。
//SNMPFactory.init(SNMPFactory.Mode_Client, "127.0.0.1");
//使用本地模式。
SNMPFactory.init(SNMPFactory.Mode_Local, null);
// 获取SNMP API
snmpapi = SNMPFactory.getSNMPAPI();
//设置SNMP Agent连接参数
nodeParam = new SNMPNodeParam();
nodeParam.nodeIP = "127.0.0.1";
} catch (Exception ex)
{
ex.printStackTrace();
}
}
/**
* 测试RFC1213中System组
*/
public void testMibSystem()
{
try
{
system sys = new system();
system mibsys = (system) snmpapi.getMibObject(sys, nodeParam);
System.out.println("...........MIBSystem");
System.out.println("系统名称:" + mibsys.getSysName());
System.out.println("描述:" + mibsys.getSysDescr());
System.out.println("系统位置:" + mibsys.getSysLocation());
System.out.println("联系人:" + mibsys.getSysContact());
System.out.println("系统对象ID:" + mibsys.getSysObjectID());
System.out.println("系统服务:" + mibsys.getSysServices());
System.out.println("启动时间:" + mibsys.getSysUpTime());
} catch (Exception ex)
{
ex.printStackTrace();
}
}
/**
* 测试RFC1213中接口表
*/
public void testMibIFTable()
{
try
{
java.util.List list = snmpapi.getAllTableData(ifTable.class,
nodeParam);
System.out.println(".............网络接口个数:" + list.size());
for (int i = 0; i < list.size(); i++)
{
ifTable table = (ifTable) list.get(i);
Object obj=snmpapi.getMibObject(table,nodeParam);
System.out.println(obj);
System.out.println("第" + i + "个接口名称:" + table.getIfDescr());
System.out.println("第" + i + "个接口物理地址:" +
table.getIfPhysAddress());
System.out.println("第" + i + "个接口速度:" + table.getIfSpeed());
System.out.println("第" + i + "个接口工作状态:" + table.getIfOperStatus());
}
} catch (Exception ex)
{
ex.printStackTrace();
}
}
/**
* 在本机测试从windows xp的SNMP Agent查询数据。(参见如何启动xp的SNMP Agent服务)
* @param args String[]
*/
public static void main(String args[])
{
try
{
TestMibMapping test = new TestMibMapping();
test.testMibIFTable();
test.testMibSystem();
} catch (Exception ex)
{
ex.printStackTrace();
}
}
}
分享到:
相关推荐
当学习这些代码实例时,读者应着重理解SNMP协议的基本概念、SNMP4J库的使用方法以及如何在Java程序中调用这些方法来执行具体的网络管理任务。这些知识能够帮助读者构建自己的SNMP监控工具或者集成SNMP功能到现有的...
在实际应用中,使用Java SNMP API进行开发,开发者需要理解SNMP的不同版本(如SNMPv1, SNMPv2c, SNMPv3)及其安全性、认证机制。同时,需要熟悉如何创建和解析PDU,以及如何操作MIB库中的对象。通过提供的API,可以...
**标题解析:** "java调用snmp协议" 指的是使用Java编程语言来实现对SNMP(简单网络管理协议)的调用。SNMP主要用于监控和管理网络设备,如路由器、交换机等,而Java作为一种跨平台的编程语言,能够方便地实现这种...
在Java中,开发SNMP应用程序通常涉及使用特定的库,如Net-SNMP或J SNMP等。以下是对SNMP协议和Java开发SNMP应用的一些关键知识点的详细说明: 1. **SNMP协议基础**: - SNMP由三个主要组件构成:管理站(Manager)...
本文将详细讲解如何使用Java的SNMP4J库来实现SNMP Trap接口,发送这些消息。 首先,我们需要了解SNMP4J库。SNMP4J是Java平台上的一个开源SNMP库,它提供了完整的SNMPv1、SNMPv2c和SNMPv3支持。该库不仅包含SNMP协议...
“snmp_java”和“snmp_manager”表明这是一个Java编写的SNMP管理工具,可能是服务器端的应用程序,负责接收和处理来自Web前端的请求,然后将这些请求转化为SNMP协议的数据包,发送给网络设备,并将返回的结果展示给...
在Java中,可以使用开源库如JSNMP、SNMP4J来实现SNMP通信。这些库提供了API,允许开发者发送GET、SET、TRAP等SNMP操作,处理PDU(协议数据单元)并进行错误处理。 3. 发送SNMP请求: 要发送SNMP请求,首先需要...
在这个“SNMP管理站开发-java实现”的主题中,我们将深入探讨如何使用Java语言来构建一个SNMP管理站,以实现对SNMP代理的远程访问。 首先,要理解SNMP的基本概念。SNMP由三部分组成:管理信息库(MIB)、管理站...
在Java中实现SNMP管理,开发者可以使用各种库来与SNMP代理进行交互,如JSNMP、 SNMP4J等。本文将深入探讨Java SNMP管理的相关知识点。 首先,理解SNMP协议的基础概念至关重要。SNMP是一种应用层协议,工作在TCP/IP...
本篇文章将详细探讨如何使用SNMP4j库在Java中读取SNMP协议数据。 首先,了解SNMP是必要的。SNMP是一种网络管理标准协议,用于监控网络设备,如路由器、交换机、服务器等的状态和性能。它基于TCP/IP协议栈,通过发送...
Java SNMP4J是一个基于Java平台的开源库,用于实现简单网络管理协议(SNMP)的应用程序。这个库为Java开发者提供了全面的工具集,让他们能够方便地与支持SNMP的网络设备进行通信,从而获取或管理系统配置、性能数据...
在实际的网络管理项目中,使用Java和SNMP库能大大简化开发过程。例如,通过编写脚本或开发应用程序,管理员可以周期性地检查网络设备的状态,或是在设备出现异常时及时获得通知。这对于维护大型网络的可靠性、提高...
在实际开发中,应确保使用安全的SNMP版本(如SNMPv3),并正确配置认证和加密参数,以防止未经授权的访问和攻击。 总结,Windows下的SNMP程序开发涉及到SNMP协议的基本概念、版本、开发工具、编程语言选择以及源...
开发者可以通过查阅此文档快速理解和使用SNMP4J的各个功能,以便在Java项目中实现SNMP功能。 总结来说,SNMP是一种用于网络管理的协议,而Java中的SNMP4J库提供了实现SNMP功能的工具。通过学习和使用SNMP4J,开发者...
在这个场景中,我们看到一个关于如何使用Java编程语言实现SNMP协议的项目。这个项目可能包含了一个或多个类,这些类实现了SNMP协议的核心功能,使得开发者能够通过Java程序与支持SNMP的网络设备进行通信。 首先,...
在这个场景中,我们讨论的是如何使用Java语言实现SNMP功能,包括GET、GETNEXT和SET操作。下面将详细介绍这些概念以及如何在Eclipse环境中实现它们。 1. **SNMP协议基础**: SNMP是TCP/IP协议簇的一部分,主要用于...
Eclipse是一种广泛使用的Java集成开发环境(IDE),在这个项目中,Java SNMP Connector被设计为可以在Eclipse中方便地进行开发和调试。 在Java SNMP Connector中,开发者可以利用封装后的API来发送Get、Set、Trap等...
Java SNMP Agent工具允许程序员创建能够响应SNMP请求的应用程序,从而与网络管理系统(NMS)进行交互。 1. **SNMP Java Agent**: Java SNMP Agent是用Java语言编写的SNMP协议实现,它使得开发者能够在Java平台上...
标题中的“Java 开发JAVA基于SNMP网络设备MIB信息采集”是指使用Java编程语言来实现SNMP(简单网络管理协议)对网络设备上的MIB(Management Information Base,管理信息库)信息进行采集的一种技术实践。...