关于Snmp4j包,最重要三个概念,也是三个类:Snmp、Target、PDU。
Target,表示被管理的设备。对于一个被管理的设备,我们关注它的Address,它使用的协议版本version,访问它的用户名和密码、以及对这个设备我们设置跟它打交道的一些策略,比如超时时间、重传次数等。所以有如下方法:
1)获取或者设置ip地址
void setAddress(Address address)
Address getAddress()
2)设置或者获取版本号(支持V1,V2c,V3)
void setVersion(int ver)
int getVersion()
3)超时时间 ( 单位:milliseconds )
void setTimeout(
long out)
long getTimeout()
4)重传次数
void setRetries(int retries)
int getRetries()
5)最大PDU大小值
void setMaxSizeRequestPDU(int max)
int getMaxSizeRequestPDU()
上面这些对于Snmp三个版本都是相同的,不同的只是在于安全方面,具体来说,Snmpv1,v2c采用共同体(community)方式,安全性很差;SnmpV3采用基于用户的安全(USM)方式,安全性能得到很大提高。
(1) 对于Snmpv1,v2c,使用Target派生出一个子类CommunityTarget,增加了对Community的方法:
void setCommunity(OctetString community)
OctetString getCommunity()
(2)对于SnmpV3,使用其子类UserTarget,增加了一些有关USM安全方面的设置,比如采用的安全模型、安全级别、访问该设备的用户名以及权威引擎ID(authoritative engine ID):
i)安全级别(支持三种安全级别)
void setSecurityLevel(int level)
int getSecurityLevel()
ii)访问用户名(该访问用户名称必须在设置USM的时候添加其相应的UsmUser)
void setSecurityName(OctetString name)
OctetString getSecurityName()
iii)安全模型(支持三种安全模型)
void setSecurityModel(int model)
int getSecurityModel()
V)权威引擎ID(authoritative engine ID)
void setAuthoritativeEngineID(byte[] id)
byte[] getAuthoritativeEngineID()
对于Target的代码大致如下:(摘自Snmp4j的说明文档)
- Community Target
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("public"));
target.setAddress(targetAddress);
target.setVersion(SnmpConstants.version1);
- User Target
UserTarget target = new UserTarget();
target.setAddress(targetAddress);
target.setRetries(1);
// set timeout to 500 milliseconds -> 2*500ms = 1s total timeout
target.setTimeout(500);
target.setVersion(SnmpConstants.version3);
target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
target.setSecurityName(new OctetString("MD5DES"));
分享到:
相关推荐
snmp4j编程简介.doc
Snmp4j 编程入门 doc
利用snmp4j实现snmp协议三个版本的get、getnext、set、trap操作的源代码,帮助你快速上手snmp协议的实现
1 windows下安装和配置snmp服务 2 用snmp4j获取本地所有oid 代码
使用Java进行SNMP编程-SNMP4J-代码实例,代码实例实现了GET, GETNEXT, GETBULK, Walk, SET操作; 提供于做服务器监控的朋友;
snmp4j可采集网络设备资源信息,为网管系统必备工具,包含源码
snmp4j api文档
SNMP4J——一个支持java管理器和代理,支持snmp应用程序接口的类库。 SNMP4J是一个商业类库,而且开源免费,它也是一个有着很高技术艺术性的SNMP执行能力的类库,支持J2SE1.4或更高的版本。SNMP4J支持指令发生器...
snmp4j 2.2.5 版本的 snmp4j 2.2.5 版本的 snmp4j 2.2.5 版本的
进行snmp4J网管开发的基础东东 agent代理端例子: Java代码 import java.util.*; import org.snmp4j.*; import org.snmp4j.smi.*; //agent代理端例子: public class Test2 { public static class Handler...
Java SNMP Package:这是一个实现了SNMP协议的Java包.它提供对基本的SNMP客户端与在SNMP版本1和2中定义的代理操作的支持.这个包提供了一种机制用于取得与设置SNMP对象标识(OID:object identifier)值通过一个简单的...
SNMP4J官网上的snmp4j-agent源码
利用SNMP4J实现Snmp Trap完整例子 - 企业应用 - Java - JavaEye论坛.mht
SNMP4J——一个支持java管理器和代理,支持snmp应用程序接口的类库。 SNMP4J是一个商业类库,而且开源免费,它也是一个有着很高技术艺术性的SNMP执行能力的类库,支持J2SE1.4或更高的版本。SNMP4J支持指令发生器...
snmp4j get walk 方式获取数据
eclipse工程(编译通过,能运行) snmp4j API get,getnext,set,trap,取mib值 实例
snmp4j 实现snmp trap发送与接收
本源代码为一个大型程序中的部分,描述了如何使用开源代码SNMP4J的异步模式。
本人制作的翻译文档,经过大量的翻译与工作而实现的snmp4j中文阅读文档