已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java来实现snmp的get、walk代码示例一、 snmp get 获取单个OID的值 SnmpGet.java Java代码 1. packagecom.michael.snmp4j; 2. 3. importjava.io.IOException; 4. importjava.util.Vector; 5. 6. importorg.snmp4j.CommunityTarget; 7. importorg.snmp4j.PDU; 8. importorg.snmp4j.Snmp; 9. importorg.snmp4j.event.ResponseEvent; 10. importorg.snmp4j.mp.SnmpConstants; 11. importorg.snmp4j.smi.OID; 12. importorg.snmp4j.smi.VariableBinding; 13. importorg.snmp4j.transport.DefaultUdpTransportMapping; 14. 15. importcom.michael.snmp4j.util.SnmpUtil; 16. 17. /* 18. *see 19. *authorMichael 20. */21. publicclassSnmpGet 22. 23. privatestaticintversion=SnmpConstants.version1; 24. privatestaticStringprotocol=udp; 25. privatestaticintport=161; 26. 27. /* 28. * 29. *paramargs 30. */31. publicstaticvoidmain(Stringargs) 32. 33. Stringip=54; 34. Stringcommunity=public; 35. Stringoidval=..0; 36. SnmpGettester=newSnmpGet(); 37. tester.snmpGet(ip,community,oidval); 38. 39. 40. 41. SuppressWarnings(unchecked) 42. privatevoidsnmpGet(Stringip,Stringcommunity,Stringoid) 43. 44. Stringaddress=protocol+:+ip+/+port; 45. CommunityTargettarget=SnmpUtil.createCommunityTarget(address, 46. community,version,2*1000L,3); 47. DefaultUdpTransportMappingudpTransportMapping=null; 48. Snmpsnmp=null; 49. try 50. PDUpdu=newPDU(); 51. /pdu.add(newVariableBinding(newOID(newint 52. /1,3,6,1,2,1,1,2); 53. pdu.add(newVariableBinding(newOID(oid); 54. pdu.setType(PDU.GET); 55. 56. udpTransportMapping=newDefaultUdpTransportMapping(); 57. udpTransportMapping.listen(); 58. snmp=newSnmp(udpTransportMapping); 59. 60. /发送同步消息 61. ResponseEventresponse=snmp.send(pdu,target); 62. System.out.println(PeerAddress:+response.getPeerAddress(); 63. PDUresponsePdu=response.getResponse(); 64. 65. if(responsePdu=null) 66. System.out.println(ip+:Requesttimeout); 67. else 68. VectorvbVect=responsePdu.getVariableBindings(); 69. System.out.println(vbsize:+vbVect.size(); 70. if(vbVect.size()=0) 71. System.out.println(pduvbsizeis0); 72. else 73. Objectobj=vbVect.firstElement(); 74. VariableBindingvb=(VariableBinding)obj; 75. System.out.println(vb.getOid()+=+vb.getVariable(); 76. 77. 78. 79. System.out.println(successfinishsnmpgettheoid!); 80. catch(Exceptione) 81. System.out.println(SNMPGetException:+e); 82. finally 83. if(snmp!=null) 84. try 85. snmp.close(); 86. catch(IOExceptionex1) 87. snmp=null; 88. 89. 90. if(udpTransportMapping!=null) 91. try 92. udpTransportMapping.close(); 93. catch(IOExceptionex2) 94. udpTransportMapping=null; 95. 96. 97. 98. 99. package com.michael.snmp4j;import java.io.IOException;import java.util.Vector;import org.snmp4j.CommunityTarget;import org.snmp4j.PDU;import org.snmp4j.Snmp;import org.snmp4j.event.ResponseEvent;import org.snmp4j.mp.SnmpConstants;import org.snmp4j.smi.OID;import org.snmp4j.smi.VariableBinding;import org.snmp4j.transport.DefaultUdpTransportMapping;import com.michael.snmp4j.util.SnmpUtil;/* * see * author Michael */public class SnmpGet private static int version = SnmpConstants.version1; private static String protocol = udp; private static int port = 161; /* * * param args */ public static void main(String args) String ip = 54; String community = public; String oidval = ..0; SnmpGet tester = new SnmpGet(); tester.snmpGet(ip, community, oidval); SuppressWarnings(unchecked) private void snmpGet(String ip, String community, String oid) String address = protocol + : + ip + / + port; CommunityTarget target = SnmpUtil.createCommunityTarget(address, community, version, 2 * 1000L, 3); DefaultUdpTransportMapping udpTransportMapping = null; Snmp snmp = null; try PDU pdu = new PDU(); / pdu.add(new VariableBinding(new OID(new int / 1,3,6,1,2,1,1,2); pdu.add(new VariableBinding(new OID(oid); pdu.setType(PDU.GET); udpTransportMapping = new DefaultUdpTransportMapping(); udpTransportMapping.listen(); snmp = new Snmp(udpTransportMapping); / 发送同步消息 ResponseEvent response = snmp.send(pdu, target); System.out.println(PeerAddress: + response.getPeerAddress(); PDU responsePdu = response.getResponse(); if (responsePdu = null) System.out.println(ip + :Request time out); else Vector vbVect = responsePdu.getVariableBindings(); System.out.println(vb size: + vbVect.size(); if (vbVect.size() = 0) System.out.println( pdu vb size is 0 ); else Object obj = vbVect.firstElement(); VariableBinding vb = (VariableBinding) obj; System.out.println(vb.getOid() + = + vb.getVariable(); System.out.println(success finish snmp get the oid!); catch (Exception e) System.out.println(SNMP Get Exception: + e); finally if (snmp != null) try snmp.close(); catch (IOException ex1) snmp = null; if (udpTransportMapping != null) try udpTransportMapping.close(); catch (IOException ex2) udpTransportMapping = null; 二、snmp get 同步和异步的方式获取多个OID的值 同步实现方法:SnmpGetList.java Java代码 1. packagecom.michael.snmp4j; 2. 3. importjava.io.IOException; 4. importjava.util.ArrayList; 5. importjava.util.List; 6. 7. importorg.snmp4j.CommunityTarget; 8. importorg.snmp4j.PDU; 9. importorg.snmp4j.Snmp; 10. importorg.snmp4j.event.ResponseEvent; 11. importorg.snmp4j.mp.SnmpConstants; 12. importorg.snmp4j.smi.OID; 13. importorg.snmp4j.smi.VariableBinding; 14. importorg.snmp4j.transport.DefaultUdpTransportMapping; 15. 16. importcom.michael.snmp4j.util.SnmpUtil; 17. 18. /* 19. *see 20. *authorMichael 21. * 22. */23. publicclassSnmpGetList 24. 25. privatestaticintversion=SnmpConstants.version1; 26. privatestaticStringprotocol=udp; 27. privatestaticintport=161; 28. 29. /* 30. * 31. *paramargs 32. */33. publicstaticvoidmain(Stringargs) 34. 35. Stringip=54; 36. Stringcommunity=public; 37. SnmpGetListtester=newSnmpGetList(); 38. ListoidList=newArrayList(); 39. oidList.add(...0); 40. oidList.add(...0); 41. oidList.add(...0); 42. /synchronous 43. tester.snmpGet(ip,community,oidList); 44. 45. 46. 47. /* 48. * 49. *paramipAddress 50. *paramcommunity 51. *paramoid 52. */53. privatevoidsnmpGet(StringipAddress,Stringcommunity, 54. ListoidList) 55. Stringaddress=protocol+:+ipAddress+/+port; 56. CommunityTargettarget=SnmpUtil.createCommunityTarget(address, 57. community,version,2*1000L,3); 58. DefaultUdpTransportMappingtransport=null; 59. Snmpsnmp=null; 60. try 61. PDUpdu=newPDU(); 62. pdu.setType(PDU.GET); 63. for(Stringoid:oidList) 64. pdu.add(newVariableBinding(newOID(oid); 65. 66. 67. transport=newDefaultUdpTransportMapping(); 68. transport.listen(); 69. snmp=newSnmp(transport); 70. 71. ResponseEventresponse=snmp.send(pdu,target); 72. PDUresPdu=response.getResponse(); 73. if(resPdu=null) 74. System.out.println(ipAddress+:Requesttimeout); 75. else 76. System.out.println(responsepduvbsizeis+resPdu.size(); 77. for(inti=0;iresPdu.size();i+) 78. VariableBindingvb=resPdu.get(i); 79. System.out.println(vb.getOid()+=+vb.getVariable(); 80. 81. 82. catch(Exceptione) 83. System.out.println(SNMPGetNextException:+e); 84. finally 85. if(snmp!=null) 86. try 87. snmp.close(); 88. catch(IOExceptionex1) 89. snmp=null; 90. 91. 92. if(transport!=null) 93. try 94. transport.close(); 95. catch(IOExceptionex2) 96. transport=null; 97. 98. 99. 100. 101. 102. 103. package com.michael.snmp4j;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.snmp4j.CommunityTarget;import org.snmp4j.PDU;import org.snmp4j.Snmp;import org.snmp4j.event.ResponseEvent;import org.snmp4j.mp.SnmpConstants;import org.snmp4j.smi.OID;import org.snmp4j.smi.VariableBinding;import org.snmp4j.transport.DefaultUdpTransportMapping;import com.michael.snmp4j.util.SnmpUtil;/* * see * author Michael * */public class SnmpGetList private static int version = SnmpConstants.version1; private static String protocol = udp; private static int port = 161; /* * * param args */ public static void main(String args) String ip = 54; String community = public; SnmpGetList tester = new SnmpGetList(); List oidList = new ArrayList(); oidList.add(...0); oidList.add(...0); oidList.add(...0); / synchronous tester.snmpGet(ip, community, oidList); /* * * param ipAddress * param community * param oid */ private void snmpGet(String ipAddress, String community, List oidList) String address = protocol + : + ipAddress + / + port; CommunityTarget target = SnmpUtil.createCommunityTarget(address, community, version, 2 * 1000L, 3); DefaultUdpTransportMapping transport = null; Snmp snmp = null; try PDU pdu = new PDU(); pdu.setType(PDU.GET); for (String oid : oidList) pdu.add(new VariableBinding(new OID(oid); transport = new DefaultUdpTransportMapping(); transport.listen(); snmp = new Snmp(transport); ResponseEvent response = snmp.send(pdu, target); PDU resPdu = response.getResponse(); if (resPdu = null) System.out.println(ipAddress + :Request time out); else System.out.println( response pdu vb size is + resPdu.size(); for (int i = 0; i resPdu.size(); i+) VariableBinding vb = resPdu.get(i); System.out.println(vb.getOid() + = + vb.getVariable(); catch (Exception e) System.out.println(SNMP GetNext Exception: + e); finally if (snmp != null) try snmp.close(); catch (IOException ex1) snmp = null; if (transport != null) try transport.close(); catch (IOException ex2) transport = null; 异步实现方法:SnmpGetListAsyn.java Java代码 1. packagemichael.snmp.snmp4j; 2. 3. importjava.util.ArrayList; 4. importjava.util.List; 5. 6. importmichael.snmp.util.SnmpUtil; 7. 8. importorg.snmp4j.CommunityTarget; 9. importorg.snmp4j.MessageDispatcherImpl; 10. importorg.snmp4j.PDU; 11. importorg.snmp4j.Snmp; 12. importorg.snmp4j.event.ResponseEvent; 13. importorg.snmp4j.event.ResponseListener; 14. importorg.snmp4j.mp.MPv1; 15. importorg.snmp4j.mp.MPv2c; 16. importorg.snmp4j.mp.MPv3; 17. importorg.snmp4j.mp.SnmpConstants; 18. importorg.snmp4j.smi.OID; 19. importorg.snmp4j.smi.VariableBinding; 20. importorg.snmp4j.transport.DefaultUdpTransportMapping; 21. importorg.snmp4j.util.MultiThreadedMessageDispatcher; 22. importorg.snmp4j.util.ThreadPool; 23. importorg.snmp4j.util.WorkerPool; 24. 25. /* 26. *asynchronoussendPDU 27. *see 28. *authorMichael 29. * 30. */31. publicclassSnmpGetListAsyn 32. 33. privatestaticintversion=SnmpConstants.version1; 34. privatestaticStringprotocol=udp; 35. privatestaticintport=161; 36. 37. /* 38. * 39. *paramargs 40. */41. publicstaticvoidmain(Stringargs) 42. 43. Stringip=54; 44. Stringcommunity=public; 45. SnmpGetListAsyntester=newSnmpGetListAsyn(); 46. ListoidList=newArrayList(); 47. oidList.add(...0); 48. oidList.add(...0); 49. oidList.add(...0); 50. /asynchronous 51. tester.snmpAsynGet(ip,community,oidList); 52. 53. 54. 55. /* 56. * 57. *paramipAddress 58. *paramcommunity 59. *paramoid 60. */61. privatevoidsnmpAsynGet(StringipAddress,Stringcommunity, 62. ListoidList) 63. Stringaddress=protocol+:+ipAddress+/+port; 64. CommunityTargettarget=SnmpUtil.createCommunityTarget(address, 65. community,version,2*1000L,3); 66. DefaultUdpTransportMappingtransport=null; 67. Snmpsnmp=null; 68. try 69. WorkerPoolthreadPool=ThreadPool.create(TestSNMPWorkPool,2); 70. MultiThreadedMessageDispatcherdispatcher=newMultiThreadedMessageDispatcher( 71. threadPool,newMessageDispatcherImpl(); 72. transport=newDefaultUdpTransportMapping(); 73. snmp=newSnmp(dispatcher,transport); 74. snmp.getMessageDispatcher().addMessageProcessingModel(newMPv1(); 75. snmp.getMessageDispatcher().addMessageProcessingModel(newMPv2c(); 76. snmp.getMessageDispatcher().addMessageProcessingModel(newMPv3(); 77. snmp.listen(); 78. 79. PDUpdu=newPDU(); 80. pdu.setType(PDU.GET); 81. for(Stringoid:oidList) 82. pdu.add(newVariableBinding(newOID(oid); 83. 84. 85. ResponseListenerlistener=newResponseListener() 86. publicvoidonResponse(ResponseEventevent) 87. (Snmp)event.getSource().cancel(event.getRequest(),this); 88. PDUresponse=event.getResponse(); 89. PDUrequest=event.getRequest(); 90. System.out.prin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生鲜冷链运输操作技术指引
- 亚健康调理咨询沟通技巧手册
- 活跃会员节日促销活动方案
- 春季露地黄瓜定植操作指引
- 客户生日专属关怀方案
- 颈椎病中医推拿复位操作规范
- 整脊复位调理操作规程
- 职工行为安全规范管理手册
- 农机作业安全驾驶操作指引
- 护理法律法规医疗纠纷处理题库及答案
- 石油钻井井电方案
- 得每通产品培训2015品牌版
- 青海省循化县谢坑铜金矿(二、四釆区)矿山地质环境保护与土地复垦方案
- Cpk 计算标准模板
- FANUC O加工中心编程说明书
- 滕王阁序注音全文打印版
- GB/T 6451-2015油浸式电力变压器技术参数和要求
- GB/T 29316-2012电动汽车充换电设施电能质量技术要求
- 2023高中学业水平合格性考试历史重点知识点归纳总结(复习必背)
- Unit4 写作课 A Funny Story教案-高中英语北师大版(2019)选择性必修第二册
- 果树学实验-主要果实类型与构造认识解答课件
评论
0/150
提交评论