欢迎来到天天文库
浏览记录
ID:40494618
大小:34.31 KB
页数:11页
时间:2019-08-03
《使用Java进行SNMP编程-SNMP4J-代码实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、使用SNMP4J可以很方便的实现一个SNMPNMS的功能。对于SNMPv1/SNMPv2,简单的说,只需要以下几个步骤1)创建Snmp对象snmp2)创建CommunityTarget对象target,并指定community,version,address,timeout,retry等参数。3)创建PDU对象pdu,并指定操作类型(GET/GETNEXT/GETBULK/SET),添加VariableBinding(也就是待操作的OID), 如果是GETBULK操作,还可以指定MaxRepetitions和NonRepeaters。 注意一定要
2、指定MaxRepetitions,默认值是0,那样不会返回任何结果。4)调用snmp.send(pdu,target)方法,发送请求请返回结果。此外,SNMP4J提供了TableUtils类,可以很轻松的实现一个SNMPWalk的功能,比如一次返回一个表格下面的所有MIB值。TableUtils类还支持指定owerboundindex和upperboundindex,得到更小范围的结果以提高性能。这一点对于从一个很多行的表中取一部分行的数据来说很重要。Snmp还支持异步的send方法。下面的代码实例实现了GET,GETNEXT,GETBULK,Wal
3、k,SET操作,以及一个利用异步send方法实现的agentdiscovery:对一个广播地址发送请求,等待agent返回的应答。如果需要对一个范围内的IP进行扫描,可以稍加改进,反复调用异步send多次发送给不同IP。[java]viewplaincopyprint?1.import java.io.IOException; 2.import java.util.List; 3.import java.util.Vector; 4. 5.import org.snmp4j.CommunityTarget; 6.import org.snm
4、p4j.PDU; 7.import org.snmp4j.Snmp; 8.import org.snmp4j.event.ResponseEvent; 9.import org.snmp4j.event.ResponseListener; 10.import org.snmp4j.mp.SnmpConstants; 1.import org.snmp4j.smi.OID; 2.import org.snmp4j.smi.OctetString; 3.import org.snmp4j.smi.UdpAddress; 4.import
5、org.snmp4j.smi.VariableBinding; 5.import org.snmp4j.transport.DefaultUdpTransportMapping; 6.import org.snmp4j.util.DefaultPDUFactory; 7.import org.snmp4j.util.TableEvent; 8.import org.snmp4j.util.TableUtils; 9. 10.public class SNMPv2Test { 11. public static void main(
6、String[] args) throws IOException, InterruptedException { 12. Snmp snmp = new Snmp(new DefaultUdpTransportMapping()); 13. snmp.listen(); 14. 15. CommunityTarget target = new CommunityTarget(); 16. target.setCommunity(new OctetString("pub
7、lic")); 17. target.setVersion(SnmpConstants.version2c); 18. target.setAddress(new UdpAddress("192.168.0.100/161")); 19. target.setTimeout(3000); //3s 20. target.setRetries(1); 21. 22. sendRequest(snmp, createGetPdu(),
8、target); 23. sendRequest(snmp, createGetNextPd
此文档下载收益归作者所有