因为项目需要,做了一个通过snmp远程监控IIS6或者IIS6以上的程序。现在把它的核心类源代码给大家分享一下。 package com.shine.framework.IIS; import java.util.HashMap; import java.util.List; import java.util.Map; import com.shine.framework.core.util.SnmpUtils; @SuppressWarnings("unchecked") public class IISUtils { /** * 获取IIS数据发送信息 * * totalBytesSentHighWord 这是自服务启动后,WWW 服务发送的总字节数中的高 32 位。 * totalBytesSentLowWord 这是自服务启动后,WWW 服务发送的总字节数中的低 32 位。 * totalBytesReceivedHighWord 这是自服务启动后,WWW 服务接收的总字节数中的高 32 位。 * totalBytesReceivedLowWord 这是自服务启动后,WWW 服务接收的总字节数中的低 32 位。 * totalFilesSent这是自服务启动后,WWW 服务发送的文件总数。 totalFilesReceived 这是自服务启动后,WWW * 服务接收的文件总数。 * * @param ip * @param community * @param port * @return */ public static Map<String, String> getIISDataInfo(String ip, String community, int port) { Map<String, String> map = new HashMap<String, String>(); SnmpUtils snmpUtils = null; String[] oid = { "1.3.6.1.4.1.311.1.7.3.1.1", "1.3.6.1.4.1.311.1.7.3.1.2", "1.3.6.1.4.1.311.1.7.3.1.3", "1.3.6.1.4.1.311.1.7.3.1.5", "1.3.6.1.4.1.311.1.7.3.1.5", "1.3.6.1.4.1.311.1.7.3.1.6" }; try { snmpUtils = new SnmpUtils(ip, community, port); List<String> dataList = snmpUtils.getTableView(oid); map.put("totalBytesSentHighWord", dataList.get(0)); map.put("totalBytesSentLowWord", dataList.get(1)); map.put("totalBytesReceivedHighWord", dataList.get(2)); map.put("totalBytesReceivedLowWord", dataList.get(3)); map.put("totalFilesSent", dataList.get(4)); map.put("totalFilesReceived", dataList.get(5)); } catch (Exception e) { e.printStackTrace(); } finally { snmpUtils.close(); } return map; } /** * 获取IIS连接计数 * * currentAnonymousUsers 当前使用 WWW 服务建立匿名连接的用户数。 currentNonAnonymousUsers * 当前使用 WWW 服务建立非匿名连接的用户数。 totalAnonymousUsers 这是自服务启动后,与 WWW 服务建立匿名连接的用户总数。 * totalNonAnonymousUsers 这是自服务启动后,与 WWW 服务建立非匿名连接的用户总数。 maxAnonymousUsers * 这是自服务启动后,使用 WWW 服务建立匿名连接的最大用户数量。 maxNonAnonymousUsers 这是自服务启动后,与 WWW * 服务建立同时非匿名连接的最大数量。 currentConnections 这是与 WWW 服务建立的当前连接数。 maxConnections * 这是自服务启动后,与 WWW 服务建立的同时连接的最大数量。 connectionAttempts 这是自服务启动后,已尝试使用 WWW * 服务的连接次数。 logonAttempts 这是自服务启动后,尝试登录到 WWW 服务的次数。 * * * @param ip * @param community * @param port * @return */ public static Map<String, String> getIISConnectionInfo(String ip, String community, int port) { Map<String, String> map = new HashMap<String, String>(); SnmpUtils snmpUtils = null; String[] oid = { "1.3.6.1.4.1.311.1.7.3.1.7", "1.3.6.1.4.1.311.1.7.3.1.8", "1.3.6.1.4.1.311.1.7.3.1.9", "1.3.6.1.4.1.311.1.7.3.1.10", "1.3.6.1.4.1.311.1.7.3.1.11", "1.3.6.1.4.1.311.1.7.3.1.12", "1.3.6.1.4.1.311.1.7.3.1.13