SNMP4J编程最重要的三个类之Target
2015-01-22 08:55
176 查看
关于SNMP4J包,最重要的三个概念,也是三个类:Snmp、Target、PDU。
1、Target
Target,表示被管理的设备。对于一个被管理的设备,我们关注它的Address,它使用的协议版本version,访问它的用户名和密码,以及对这个设备我们设置跟它打交道的一些策略,比如超时时间、重传次数等。所以有如下方法:
1)获取或者设置IP地址
Address getAddress()
void setAddress(Address address)
2)获取或者设置版本号(支持V1,V2c,V3)
int getVersion()
void setVersion(int ver)
3)获取或者设置超时时间
long getTimeout()
void setTimeout(long out)
4)获取或者设置重传次数
int getRetries()
void setRetries(int retries)
5)获取或者设置最大PDU大小值
int getMaxSizeRequestPDU()
void setMaxSizeRequestPDU(int max)
上面这些对于SNMP三个版本都是相同的,不同的是在于安全方面。具体来说,SNMPv1和SNMPv2c采用共同体(Community)方式,安全性很差;SNMPv3采用基于用户的安全(USM)方式,安全性能得到很大提高。
(1)对于SNMPv1和SNMPv2c,使用Target派生出一个子类CommunityTarget,增加了对Community的方法:
OctetString getCommunity()
void setCommunity(OctetString community)
(2)对于SNMPv3,使用其子类UserTarget,增加了一些有关USM安全方面的设置,比如采用的安全模型、安全级别、访问该设备的用户名以及权威引擎ID(authoritative engine ID):
i)安全级别(支持三种安全级别)
int getSecurityLevel()
void setSecurityLevel(int level)
ii)访问用户名(该访问用户名称必须在设置USM的时候添加其相应的UsmUser)
OctetString getSecurityName()
void setSecurityName(OctetString name)
iii)安全模型(支持三种安全模型)
int getSecurityModel()
void setSecurityModel(int model)
v)权威引擎ID(authoritative engine ID)
byte[] getAuthoritativeEngineID()
void setAuthoritativeEngineID(byte[] id)
对于Target的代码大致如下:
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("public"));
target.setAddress(targetAddress);
target.setVersion(SnmpConstants.version1)
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"));
1、Target
Target,表示被管理的设备。对于一个被管理的设备,我们关注它的Address,它使用的协议版本version,访问它的用户名和密码,以及对这个设备我们设置跟它打交道的一些策略,比如超时时间、重传次数等。所以有如下方法:
1)获取或者设置IP地址
Address getAddress()
void setAddress(Address address)
2)获取或者设置版本号(支持V1,V2c,V3)
int getVersion()
void setVersion(int ver)
3)获取或者设置超时时间
long getTimeout()
void setTimeout(long out)
4)获取或者设置重传次数
int getRetries()
void setRetries(int retries)
5)获取或者设置最大PDU大小值
int getMaxSizeRequestPDU()
void setMaxSizeRequestPDU(int max)
上面这些对于SNMP三个版本都是相同的,不同的是在于安全方面。具体来说,SNMPv1和SNMPv2c采用共同体(Community)方式,安全性很差;SNMPv3采用基于用户的安全(USM)方式,安全性能得到很大提高。
(1)对于SNMPv1和SNMPv2c,使用Target派生出一个子类CommunityTarget,增加了对Community的方法:
OctetString getCommunity()
void setCommunity(OctetString community)
(2)对于SNMPv3,使用其子类UserTarget,增加了一些有关USM安全方面的设置,比如采用的安全模型、安全级别、访问该设备的用户名以及权威引擎ID(authoritative engine ID):
i)安全级别(支持三种安全级别)
int getSecurityLevel()
void setSecurityLevel(int level)
ii)访问用户名(该访问用户名称必须在设置USM的时候添加其相应的UsmUser)
OctetString getSecurityName()
void setSecurityName(OctetString name)
iii)安全模型(支持三种安全模型)
int getSecurityModel()
void setSecurityModel(int model)
v)权威引擎ID(authoritative engine ID)
byte[] getAuthoritativeEngineID()
void setAuthoritativeEngineID(byte[] id)
对于Target的代码大致如下:
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("public"));
target.setAddress(targetAddress);
target.setVersion(SnmpConstants.version1)
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编程最重要的三个类之Snmp
- SNMP4J编程最重要的三个类之关系
- ASP.NET MVC三个重要的描述对象:ControllerDescriptor和ActionDescriptor的创建
- SAS处理数据的三个重要步骤
- Win10预览版10122 官方已知三个重要bug汇总
- elasticsearch三个重要的优化
- 面向对象编程中的三个重要机制
- 项目管理三个重要概念:检查点、里程碑、基线(转)
- 世界经理人: 三个重要法则让你彻底改变!
- 现在就开始使用AngularJS的三个重要原因
- 从技术角度看CSDN论坛的三个重要的阶段
- WTL中 CTreeViewCtrl 类的三个重要数据结构
- 数据科学的三个重要经验
- 三个重要的同余式——威尔逊定理、费马小定理、欧拉定理 + 求幂大法的证明
- 三个重要的事件来看软件测试的重要性和软件测试的行情
- 剖析RedHat Linux中三个重要内核文件
- 并发编程的三个重要概念
- 大数据三个重要的技术问题
- 三个重要条件不满足,iPhone X刷脸解锁真的合适么?
- [置顶] Combination Sum系列的三个题目39,40,216--重要(和78. Subsets ,90. Subsets II类似)