java snmp源码_使用Java进行SNMP编程

本文介绍了使用SNMP4J库进行SNMPv3编程的步骤,包括创建Snmp对象、设置USM用户、创建UserTarget、构造ScopedPDU以及发送请求。详细讲解了SNMPv3特有的安全级别、认证加密和上下文设置。
摘要由CSDN通过智能技术生成

other.acadc16.svg

使用Java进行SNMP编程

date.3402d68.svg 2016-08-23

download.d149a6d.svg 0

like.6b1b328.svg 0

collect.2156630.svg 0

暂无评分

classify.8d164f6.svg

其他

points_download.ebc3e32.svg 1

积分下载

question.bf77ac6.svg

如何获取积分?

使用SNMP4J进行SNMPv3编程的步骤如下:

1) 创建Snmp对象snmp

2) 创建USM对象,并创建User,添加到USM对象中。

创建User是需要指定securityName,认证协议MD5/SHA1,认证密钥,加密算法DES/AES,加密密钥。

添加User到USM对象中时候,可以指定engineID也可以不指定。

3) 创建UserTarget对象target,并指定version, address, timeout, retry等参数,这些和SNMPv1/v2相同。

另外还必须指定SNMPv3特有的两个参数SecurityLevel和SecurityName。

SNMP4J会根据这个SecurityName到USM的UserTable中查找匹配的User,用这个User的信息进行认证加密处理。

查找的时候必须同时匹配SecurityName和engineID,但是如果添加User到USM对象中时候,没有指定engineID,那么SecurityName相同即匹配成功。

4) 创建ScopedPDU对象pdu,并指定操作类型(GET/GETNEXT/GETBULK/SET), 添加VariableBinding(也就是待操作的OID),

如果是GETBULK操作,还可以指定MaxRepetitions和NonRepeaters。

注意一定要指定MaxRepetitions,默认值是0,那样不会返回任何结果。

如果agent上设定的contextEngineId和snmpEngineId不一致,那么需要调用ScopedPDU.setContextEngineID()方法设定contextEngineId。

如果agent上设定了contextName,那么需要调用ScopedPDU.setContextName()方法设定contextName。

5) 调用snmp.send(pdu, target)方法,发送请求请返回结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值