- 浏览: 7340170 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
在window系统中简单的配置之后,使用SNMP4J的测试的信息如下:
以下部分的SNMP中MIB中OID可能错误,希望大家不惜指出,谢谢!
package com.easyway.snmp; import java.io.IOException; import java.util.Vector; import org.snmp4j.CommunityTarget; import org.snmp4j.PDU; import org.snmp4j.Snmp; import org.snmp4j.TransportMapping; import org.snmp4j.event.ResponseEvent; import org.snmp4j.mp.SnmpConstants; import org.snmp4j.smi.Address; import org.snmp4j.smi.GenericAddress; import org.snmp4j.smi.OID; import org.snmp4j.smi.OctetString; import org.snmp4j.smi.VariableBinding; import org.snmp4j.transport.DefaultUdpTransportMapping; /** * * snmp简单应用 * @author longgangbai * */ public class SnmpUtils { private Snmp snmp = null; private Address targetAddress = null; /** * 初始化SNMP的各种信息 * @throws IOException */ public void initComm() throws IOException { //创建设备代理的地址信息 targetAddress = GenericAddress.parse("udp:192.168.0.175/161"); //创建默认的Udp传输影响对象 TransportMapping transport = new DefaultUdpTransportMapping(); //创建snmp对象 snmp = new Snmp(transport); //开始snmp监听性 transport.listen(); } /** * 响应snmp的信息的方法 * @param pdu * @return * @throws IOException */ public ResponseEvent sendPDU(PDU pdu) throws IOException { //创建团体对象(一般在客户端设置的) CommunityTarget target = new CommunityTarget(); target.setCommunity(new OctetString("public")); //设置snmp监听地址的团体 target.setAddress(targetAddress); //设置请求的次数 target.setRetries(2); //设置请求的超时时间的 target.setTimeout(1500); //设置snmp的版本信息 target.setVersion(SnmpConstants.version1); //设置设备Agent的代理的响应的对象团体 return snmp.send(pdu, target); } /** * 设置要监控的PDU对象 * @throws IOException */ public void setPDU() throws IOException { //设置设备Agent代理的电脑名字的PDU PDU pdu = new PDU(); pdu.add(new VariableBinding(new OID(new int[] { 1, 3, 6, 1, 2, 1, 1, 5, 0 }), new OctetString("SNMP-PCNAME"))); pdu.setType(PDU.SET); sendPDU(pdu); //设置设备Agent代理电脑的工作组的PDU PDU pdu0 = new PDU(); pdu0.add(new VariableBinding(new OID(new int[] { 1, 3, 6, 1, 4, 1, 77, 1, 4,1,0 }), new OctetString("SNMP-WORKGROUP"))); pdu0.setType(PDU.SET); sendPDU(pdu0); //设置设备Agent代理电脑的系统信息 PDU pdu1 = new PDU(); pdu1.add(new VariableBinding(new OID(new int[] { 1, 3, 6, 1, 2, 1, 1, 1, 0 }), new OctetString("SNMP-SYSTEM-INFO"))); pdu1.setType(PDU.SET); sendPDU(pdu1); //设置设备Agent代理电脑的启动时间 PDU pdu2 = new PDU(); pdu2.add(new VariableBinding(new OID(new int[] { 1, 3, 6, 1, 2, 1, 1, 3 }), new OctetString("SNMP-SYSTEM-STARTUP"))); pdu2.setType(PDU.SET); sendPDU(pdu2); //设置设备代理电脑的联系人 PDU pdu3 = new PDU(); pdu3.add(new VariableBinding(new OID(new int[] { 1, 3, 6, 1, 2, 1, 1, 4,0 }), new OctetString("SNMP-SYSTEM-LINKMAN"))); pdu3.setType(PDU.SET); sendPDU(pdu3); //设置设备代理电脑序列号 //Getting Server Serial Number: //snmputil get 127.0.0.1 public .1.3.6.1.4.1.23.2.28.1.2.0 PDU pdu4 = new PDU(); pdu4.add(new VariableBinding(new OID(new int[] { 1,3,6,1,4,1,23,2,28,1,2,0 }), new OctetString("SNMP-SYSTEM-SERIAL-NUMBER"))); pdu4.setType(PDU.SET); sendPDU(pdu4); //设置设备代理DOS内存使用率 PDU dosmermory = new PDU(); dosmermory.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,2,3,1,6,1 }), new OctetString("SNMP-SYSTEM-DOS-MERMORY"))); dosmermory.setType(PDU.SET); sendPDU(dosmermory); //设置设备代理电脑ALLOC-MEMORY-POOL PDU memroypoll = new PDU(); memroypoll.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,2,3,1,6,2 }), new OctetString("SNMP-SYSTEM-ALLOC-MEMORY-POOL"))); memroypoll.setType(PDU.SET); sendPDU(memroypoll); //设置设备代理缓存Buffer PDU cachebuffer = new PDU(); cachebuffer.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,2,3,1,6,3 }), new OctetString("SNMP-SYSTEM-CACHE-BUFFER"))); cachebuffer.setType(PDU.SET); sendPDU(cachebuffer); //设置设备代理电脑Cache Moveable Memory PDU cachemoveablemoemory = new PDU(); cachemoveablemoemory.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,2,3,1,6,4 }), new OctetString("SNMP-SYSTEM-SERIAL-NUMBER"))); cachemoveablemoemory.setType(PDU.SET); sendPDU(cachemoveablemoemory); //设置设备代理电脑Cache No Moveable Memory PDU cachenomoveablemoemory = new PDU(); cachenomoveablemoemory.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,2,3,1,6,5 }), new OctetString("SNMP-SYSTEM-SERIAL-NUMBER"))); cachenomoveablemoemory.setType(PDU.SET); sendPDU(cachenomoveablemoemory); //设置设备代理电脑Code and Data Memory: PDU memory = new PDU(); memory.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,2,3,1,6,6 }), new OctetString("SNMP-SYSTEM-CODE-DATA-MEMORY"))); memory.setType(PDU.SET); sendPDU(memory); //设置设备代理内存使用
PDU usedmemory = new PDU(); usedmemory.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,5,1,1,2,1 }), new OctetString("SNMP-SYSTEM-USSED-MEMORY"))); usedmemory.setType(PDU.SET); sendPDU(usedmemory); //设置设备代理电脑CPU使用 PDU cpu = new PDU(); cpu.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,5,1,1,1,1}), new OctetString("SNMP-SYSTEM-USED-CPU"))); cpu.setType(PDU.SET); sendPDU(cpu); //设置设备代理电脑系统服务 PDU sysSrv = new PDU(); sysSrv.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,1,7 }), new OctetString("SNMP-SYSTEM-SERVICES"))); sysSrv.setType(PDU.SET); sendPDU(sysSrv); //设置设备代理电脑RAM空闲空间 PDU ramFree = new PDU(); ramFree.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,25,2,2,0 }), new OctetString("SNMP-SYSTEM-RAM-FREE"))); ramFree.setType(PDU.SET); sendPDU(ramFree); //设置代理虚拟内存 PDU vmmemory = new PDU(); vmmemory.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,25,2,1,3 }), new OctetString("SNMP-VM-MEMORY"))); vmmemory.setType(PDU.SET); sendPDU(vmmemory); //设置代理电脑的系统进程数量 PDU processNum = new PDU(); processNum.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,25,1,60 }), new OctetString("SNMP-SYTEM-PROCESSNUM"))); processNum.setType(PDU.SET); sendPDU(processNum);
PDU systemDate = new PDU(); systemDate.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,25,1,2 }), new OctetString("SNMP-SYSTEM-DATE"))); systemDate.setType(PDU.SET); sendPDU(systemDate); } /** * 获取要监控的PDU * @throws IOException */ public void getPDU() throws IOException { // get PDU PDU pdu = new PDU(); pdu.add(new VariableBinding(new OID(new int[] { 1, 3, 6, 1, 2, 1, 1, 5, 0 }))); pdu.setType(PDU.GET); readResponse(sendPDU(pdu)); // get PDU PDU pdu0 = new PDU(); pdu0.add(new VariableBinding(new OID(new int[] { 1, 3, 6, 1, 4, 1, 77, 1, 4,1,0 }))); pdu0.setType(PDU.GET); readResponse(sendPDU(pdu0)); PDU pdu1 = new PDU(); pdu1.add(new VariableBinding(new OID(new int[] { 1, 3, 6, 1, 2, 1, 1, 1, 0 }))); pdu1.setType(PDU.GET); readResponse(sendPDU(pdu1)); PDU pdu2 = new PDU(); pdu2.add(new VariableBinding(new OID(new int[] { 1, 3, 6, 1, 2, 1, 1, 3 }))); pdu2.setType(PDU.GETNEXT); readResponse(sendPDU(pdu2)); PDU pdu3 = new PDU(); pdu3.add(new VariableBinding(new OID(new int[] { 1, 3, 6, 1, 2, 1, 1, 4,0 }))); pdu3.setType(PDU.GET); readResponse(sendPDU(pdu3)); PDU pdu4 = new PDU(); pdu4.add(new VariableBinding(new OID(new int[] { 1,3,6,1,4,1,23,2,28,1,2,0 }))); pdu4.setType(PDU.GETNEXT); readResponse(sendPDU(pdu4)); //设置设备代理DOS内存使用 PDU dosmermory = new PDU(); dosmermory.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,2,3,1,6,1}))); dosmermory.setType(PDU.GETNEXT); readResponse(sendPDU(dosmermory)); //设置设备代理电脑ALLOC-MEMORY-POOL PDU memroypoll = new PDU(); memroypoll.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,2,3,1,6,2 }))); memroypoll.setType(PDU.GETNEXT); readResponse(sendPDU(memroypoll)); //设置设备代理缓存Buffer PDU cachebuffer = new PDU(); cachebuffer.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,2,3,1,6,3 }))); cachebuffer.setType(PDU.GET); readResponse(sendPDU(cachebuffer)); //设置设备代理电脑Cache Moveable Memory PDU cachemoveablemoemory = new PDU(); cachemoveablemoemory.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,2,3,1,6,4 }))); cachemoveablemoemory.setType(PDU.GET); readResponse(sendPDU(cachemoveablemoemory)); //设置设备代理电脑Cache No Moveable Memory PDU cachenomoveablemoemory = new PDU(); cachenomoveablemoemory.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,2,3,1,6,5 }))); cachenomoveablemoemory.setType(PDU.GET); readResponse(sendPDU(cachenomoveablemoemory)); //设置设备代理电脑Code and Data Memory: PDU memory = new PDU(); memory.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,2,3,1,6,6 }))); memory.setType(PDU.GET); readResponse(sendPDU(memory)); //设置设备代理内存使用 PDU usedmemory = new PDU(); usedmemory.add(new VariableBinding(new OID(new int[] { 1,3,6,1,2,1,25,5,1,1,2,1 }))); usedmemory.setType(PDU.GETNEXT); readResponse(sendPDU(usedmemory)); //设置设备代理电脑CPU使用 PDU cpu = new PDU(); cpu.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,25,5,1,1,1,1}))); cpu.setType(PDU.GETNEXT); readResponse(sendPDU(cpu)); //设置设备代理电脑系统服务 PDU sysSrv = new PDU(); sysSrv.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,1,7 }))); sysSrv.setType(PDU.GET); readResponse(sendPDU(sysSrv)); //设置设备代理电脑RAM空闲空间 PDU ramFree = new PDU(); ramFree.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,25,2,2,0 }))); ramFree.setType(PDU.GETNEXT); readResponse(sendPDU(ramFree)); //设置代理电脑的虚拟内存 PDU vmmemory = new PDU(); vmmemory.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,25,2,1,3 }))); vmmemory.setType(PDU.GETNEXT); readResponse(sendPDU(vmmemory)); //设置代理电脑的进程数量 PDU processNum = new PDU(); processNum.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,25,1,60 }))); processNum.setType(PDU.GETNEXT); readResponse(sendPDU(processNum));
PDU systemDate = new PDU(); systemDate.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,25,1,2 }))); systemDate.setType(PDU.GETNEXT); readResponse(sendPDU(systemDate)); } /** * 获取设备响应信息 * @param respEvnt */ public void readResponse(ResponseEvent respEvnt) { if (respEvnt != null && respEvnt.getResponse() != null) { @SuppressWarnings("unchecked") Vector<VariableBinding> recVBs = respEvnt.getResponse() .getVariableBindings(); for (int i = 0; i < recVBs.size(); i++) { VariableBinding recVB = recVBs.elementAt(i); System.out.println(recVB.getOid() + " : " + recVB.getVariable()); } } } public static void main(String[] args) { try { SnmpUtils util = new SnmpUtils(); // util.initComm(); util.setPDU(); util.getPDU(); } catch (IOException e) { e.printStackTrace(); } } }
测试显示结果如下:
发表评论
-
【转】Django resources
2014-01-23 14:35 10828Django resources This page li ... -
使用国内镜像源来加速python pypi包的安装
2014-01-16 11:16 197843pipy国内镜像目前有: http://pypi.d ... -
[转 ]vagrant使用简介
2014-01-10 13:53 257531> 简介: vagrant提供了易于配置,重复性 ... -
[转]在Java中调用Python
2014-01-07 13:08 9220在执行之前都需要把jython对应的包加载进去,这个是必须的 ... -
[转]Eclipse配置PyDev插件
2014-01-02 14:25 2840安装python解释器 安装PyDev: 首 ... -
RestFuse的研究(五) Http请求的封装
2014-06-14 15:50 3648在RestFuse中封装了Http请 ... -
RestFuse的研究(四) Junit的Statement的分析
2013-12-06 11:46 1674在RestFuse提供了多种单 ... -
RestFuse的研究(三) Junit的Rule的使用和分析
2013-12-06 11:01 2239在junit中定义一些可以公用的规则(R ... -
RestFuse的研究(二) Junit的Runner的分类和模式
2013-12-06 10:40 1605在Junit4中的调用JunitCore可以采 ... -
RestFuse的研究(一) HttpJunitRunner的实现
2013-12-06 10:11 1748在RestFuse是一种针对Rest We ... -
[转]An open-source JUnit extension to test HTTP/REST APIs
2013-12-06 09:57 1101http://developer.eclipsesource ... -
TestNG简单的学习(十三)TestNG中Junit的实现
2013-12-04 09:00 3356TestNG和junit的整合 ... -
TestNG简单的学习(十二)TestNG运行
2013-12-03 09:08 51589文档来自官方地址: ... -
TestNG简单的学习(十一)TestNG学习总结
2013-12-03 09:08 14200最近一直在学习关于TestNG方面的知识,根 ... -
TestNG简单的学习(十)TestNG @Listeners 的使用
2013-12-03 09:07 8696TestNG官方网站: http://testng.or ... -
TestNG简单的学习(九)TestNG Method Interceptors 的使用
2013-12-03 09:07 2715TestNG官方网站: http://testng ... -
TestNG简单的学习(八)TestNG Annotation Transformers 的使用
2013-12-03 09:07 2815TestNG官方网站: http://testng.or ... -
TestNG简单的学习(七)TestNG编程方式运行
2013-12-02 09:22 2456TestNG官方网站: http://testng.or ... -
TestNG简单的学习(六)测试工厂注释的使用
2013-12-02 09:22 2788TestNG官方网站: http://testng.or ... -
TestNG简单的学习(五)参数化测试数据的定制
2013-12-02 09:22 2703TestNG官方网站: http://testng.or ...
相关推荐
SNMP,全称为“简单网络管理协议”(Simple Network Management Protocol),是一种广泛应用于网络设备管理的标准协议。它允许网络管理员远程监控和管理网络设备,如路由器、交换机、服务器等。在Windows XP和Server...
在Windows 10或11操作系统中,SNMP服务可以用来管理和监控本地系统以及网络中的其他SNMP兼容设备。 离线安装SNMP通常适用于没有互联网连接或者安全策略禁止在线安装的环境。这个"windows10/11-snmp离线安装包文件...
在这个主题中,“snmp模拟设备”指的是使用特定工具或软件来创建一个虚拟的SNMP设备,这个设备可以模仿真实网络设备的行为,以便于进行本地测试、调试SNMP应用或验证配置的正确性。 描述中提到的“snmpwalk文件”是...
本篇文章将基于一份名为“基于SNMP的Windows远程管理”的教学材料,深入探讨SNMP在Windows环境下的应用实践,包括其基本概念、安装配置过程以及具体的使用案例。 #### 二、SNMP基础知识回顾 1. **SNMP**:SNMP是一...
SNMP++是SNMP的C++实现,提供了一种高级接口来处理SNMP请求和响应,它增加了面向对象的设计,使得开发者能更方便地集成到他们的应用程序中。在Windows和Linux环境下编译SNMP++时,通常需要以下步骤和组件: 1. **...
- **应用场景**:尽管已被更安全的SSH取代,但在某些老旧系统中仍然使用。 #### 14. SMTP - 简单邮件传输协议 - **功能概述**:SMTP(Simple Mail Transfer Protocol)是用于在互联网上发送电子邮件的标准协议。 - ...
Test Lists可以包括多种类型的测试,例如ping测试、HTTP请求、SNMP查询等,它们能帮助用户全面了解系统的健康状况。 3. **Test List Properties**:这部分详细描述了如何配置和定制测试列表。用户可以设置检查频率...
本文将详细介绍一系列常见的端口号及其对应的服务,帮助读者更深入地理解端口的概念以及它们在网络通信中的应用。 **1. 0号端口**:通常不被分配,用于特殊的系统用途。 **2. 1号端口**:早期的网络操作系统中用于...
安装和配置简单网络管理协议 (SNMP) 服务 128 受信任的服务器配置 129 保护数据存储 129 Microsoft Access 129 Microsoft SQL Server 129 Microsoft SQL Server 2005 Express Edition 130 Oracle 130 IBM DB2 130 ...
**应用场景**:在早期的Unix系统中,如SGI Irix,tcpmux被广泛使用。它可以提供多种服务,如IP GUEST、UUCP、NUUCP等。 ##### 3. Echo Service **描述**:Echo服务是一种简单的网络服务,其作用是接收来自客户端的...
- **自签名证书**:用于内部测试和开发环境,但不建议在生产环境中使用。 - **X应用程序安全性**:对于基于X Window的GUI应用,提供了安全的显示协议。 - **管理防火墙后面的服务器**:支持通过代理服务器或跳板主机...
- **描述**:在计算机系统中,端口0通常被系统保留用于某些特定的系统服务或测试目的。 - **用途**:主要用于系统内部调试或临时占位。 ##### 2. **TCP Multiplexer (tcpmux)** - **端口号**:1 - **描述**:...
- **应用场景**:在Windows系统中实现SMB共享、Samba等服务。 #### 143号端口(IMAP v2) - **邮件服务**:用于IMAP邮件服务。 - **安全特性**:相比POP3更安全。 - **版本差异**:现代系统中推荐使用IMAP4。 ####...
四、在Vista系统中安装IIS7.0相对于早先的版本,IIS 7.0 带来了许多引人注目的新特色新功能,比如基于 Microsoft .NET Framework 的全局配置文件,可简单地通过文本编辑器或 Microsoft Visual Studio 编辑;...
在互联网技术中,端口的概念具有双重含义:一方面指的是物理层面上的连接接口,例如ADSL调制解调器、集线器、交换机、路由器等设备上的RJ-45端口或SC端口等;另一方面则是指逻辑意义上的端口,主要应用于TCP/IP协议...