今天这个示例很简单,主要是为了让大家很快的建立一套能够走通的测试环境!
大家知道,要接触一个新的东西总要写一些HelloWorld的东西,或者把内容走同,不然自己会非常的纠结!
为了简单起见,现在在Windows上建立一个SNMP服务环境,XP系统也自带了该服务的支持!
控制面板中打开添加或删除程序!
然后点击对钩安装如上选项,安装两个服务:
安装后会在服中看到SNMP服务内容
然后我们需要安装一个软件,这个软件可以查看机器的MIB树:
HiliSoft MIB Browser是一款强大、易用的网络管理和分析工具。它可以加载SNMP的MIB文件并快速进行解析,建构两个树形视图:MIB结点视图和MIB文件(模块)视图。 使用这两个视图,用户可以非常容易地通过SNMPv1/v2c/v3协议来浏览和修改SNMP代理上变量的值。内建有trap receiver,可以收集SNMP代理发送的trap。
安装后他会自动加载自己预先定义的MIB内容,直接运行该程序,然后打开是机器名称的节点
GET一下,你就能获得该机器的名称,但是要注意的是,该节点的OID是 1.3.6.1.2.1.1.5 ,但是你程序里面访问时应该是 1.3.6.1.2.1.1.5.0 ,因为该软件GET时把该OID下的所有OID实例都会显示出来
Value就是我的机器名称,也可以通过该MIB树查看其他内容
然后我们通过SNMP4J来访问该OID,来获得计算机名称:
package com; 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; /** * @说明 SNMP4J测试 * @author 崔素强 * @version 1.0 * @since */ public class Snmp4jGet { private Snmp snmp = null; private Address targetAddress = null; public static void main(String[] args) { try { Snmp4jGet util = new Snmp4jGet(); util.initComm(); util.getPDU(); } catch (IOException e) { e.printStackTrace(); } } /** * 初始化 */ public void initComm() throws IOException { // 地址是本机 端口一般都是161 targetAddress = GenericAddress.parse("udp:127.0.0.1/161"); TransportMapping transport = new DefaultUdpTransportMapping(); snmp = new Snmp(transport); transport.listen(); } /** * 执行发送 */ public void getPDU() throws IOException { // PDU 对象 PDU pdu = new PDU(); pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.1.5.0"))); // 操作类型 pdu.setType(PDU.GET); ResponseEvent revent = sendPDU(pdu); if(null != revent){ readResponse(revent); } } /** * 发送一个PDU */ public ResponseEvent sendPDU(PDU pdu) throws IOException { // 设置 目标 CommunityTarget target = new CommunityTarget(); target.setCommunity(new OctetString("public")); target.setAddress(targetAddress); // 通信不成功时的重试次数 N+1次 target.setRetries(2); // 超时时间 target.setTimeout(2 * 1000); // SNMP 版本 target.setVersion(SnmpConstants.version2c); // 向Agent发送PDU,并返回Response return snmp.send(pdu, target); } /** * 解析返回的值 */ @SuppressWarnings("unchecked") public void readResponse(ResponseEvent respEvnt) { // 解析Response System.out.println("------------>解析Response<-------------"); if (respEvnt != null && respEvnt.getResponse() != null) { 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().toString()); } } } }
打印结果如下:
------------>解析Response<------------- 1.3.6.1.2.1.1.5.0 : 796AF67B7B0140E
我们通过实例OID获得到了计算机SNMP服务提供的信息!
当然这这是个开始,实际中服务端的OID定义是公司事先定义好的,服务也是由其他开发人员提供,而你只需要通过预先配置的OID来访问服务获得内容并展示即可
用到的软件上传上去,大家可以玩玩!
请您到ITEYE看我的原创:http://cuisuqiang.iteye.com
或支持我的个人博客,地址:http://www.javacui.com
相关推荐
创建一个SNMP GET请求,设置目标IP、社区字符串(对于SNMP V1和V2c)和oid,然后发送请求并解析响应以获取机器名。 `TestForm.sln`文件是Visual Studio解决方案文件,包含了项目的配置信息和引用。打开此文件,我们...
MRTG 的安装过程需要 Perl 的支持,需要先下载并安装 Active Perl for Windows,然后下载 MRTG 并解压到一个目录。安装完成后,需要配置网络设备,以交换机为例,需要开启 SNMP,并将团体名和设备 IP 地址配置好。...
埃克斯在原版《黑衣人》漫画中,一位名叫 Ecks 的特工出轨了,想要消灭 MiB。 这个小的 Python 库有一个类似的目标...... Ecks 提供了一种使用 SNMP 从远程机器获取数据的简单方法,而无需处理单个 MIB 或 OID。 ...
【Zenoss监控配置手册】 ...总之,Zenoss监控配置涵盖了安装SNMP服务和WMI支持,以及在Windows和网络设备上进行相应的安全配置。正确配置这些组件后,Zenoss将能够有效地监控和管理IT基础设施的各个方面。
1. 将UCD-DISKIO-MIB.my和UCD-SNMP-MIB.my这两个文件放置在一个没有中文字符且路径不深的目录下,例如D:\mibfiles。 2. 双击上述任意一个MIB文件,打开MIB Browser进行编译。 3. 点击界面上的编译按钮,选择步骤1中...
4. **IPHostEntry类**:如果目标设备回应了ping请求,可以使用`Dns.GetHostEntry`方法获取关于该IP的详细信息,包括主机名、别名和IP地址列表。 5. **套接字编程**:更深入的网络探测可能涉及TCP或UDP套接字通信。...
- 在Nagios服务器上,编辑`/usr/local/nagios/etc/objects/windows.cfg`文件,定义要监控的新Windows机器。 - 定义一个主机条目,如: ``` define host{ use windows-server ; 继承Windows服务器模板的默认值 ...
8. **输入序列号和机器名**:安装过程中,必须输入操作系统的合法序列号以及服务器的主机名。 9. **SNMP配置**:可选地,用户还可以配置SNMP(Simple Network Management Protocol),以便于远程监控和管理服务器。...
为提升安全性,应修改默认的共同体名,如“Public”和“Private”,这通常在“控制面板/管理工具/服务/SnmpService属性/安全”中进行。 #### 四、网络节点的发现与管理 安装完毕后,NNM将执行网络节点的自动发现,...
在IT领域,网络管理和安全是至关重要的部分,而局域网扫描器则是一个非常实用的工具,用于在本地网络上获取设备信息。标题中的“mac-计算机名-工作组-ip局域网扫描器”指的是一个软件工具,它能够快速地扫描局域网内...
3. DNS服务,解析主机名到IP地址,反之亦然。 4. 拨号支持,如PPP和串行线路连接。 5. PPTP和L2TP,用于创建虚拟专用网络。 6. 网络打印支持,如Lpr/Lpd协议。 7. SNMP代理,用于网络设备的管理和监控。 8. NetBIOS...
如果是在 Windows 上安装 MRTG,则需要先启用 SNMP 服务。具体步骤如下: 1. **打开“控制面板”**。 2. **选择“添加/删除程序”**。 3. **点击“添加/删除 Windows 组件”**。 4. **找到并选中“管理工具”**。 5...
11. **输入序列号和机器名**:安装系统前,必须输入有效的序列号,并为服务器设置一个唯一的机器名。 12. **SNMP配置**:可选步骤,用户可以选择配置SNMP(简单网络管理协议),以便远程监控和管理服务器状态。 13...
快速智能的扫描引擎,可以快速扫描网络上计算机的计算机名、IP地址、MAC地址、SNMP、工作组名、用户名称、操作系统类型、服务器类型、备注、共享文件夹,隐藏共享、共享打印机、共享文件夹属性(是否可写、只读或者...
11. 输入序列号、机器名(必选); 12. 配置系统SNMP协议(可选); 13. 清除启动控制器下连接的所有硬盘或者所有硬盘; 14. 存储配置信息; 15. 提示插入win2000系统光盘; 16. 如果插入光盘不符,会提示; 17. ...