SNMP获取指定IP地址机器的进程数(要导入SNMP4J.jar和snmp.jar包)

来源:互联网 发布:巴赫拉米世锦赛数据 编辑:程序博客网 时间:2024/06/05 16:17
package com.gosun.cecs.service;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; public class SnmpGet {    private Snmp snmp = null;    private Address targetAddress = null;     public void initComm() throws IOException {       // 设置Agent方的IP和端口       targetAddress = GenericAddress.parse("udp:192.168.28.20/161");       TransportMapping transport = new DefaultUdpTransportMapping();       snmp = new Snmp(transport);       transport.listen();    }     @SuppressWarnings("unchecked")    public void sendPDU() throws IOException {          // 设置 target          CommunityTarget target = new CommunityTarget();          target.setCommunity(new OctetString("public"));          target.setAddress(targetAddress);          // 通信不成功时的重试次数          target.setRetries(2);          // 超时时间          target.setTimeout(1500);          target.setVersion(SnmpConstants.version1);          // 创建 PDU          PDU pdu = new PDU();          pdu.add(new VariableBinding(new OID(".1.3.6.1.2.1.25.1.6.0")));          // MIB的访问方式          pdu.setType(PDU.GET);          // 向Agent发送PDU,并接收Response          ResponseEvent respEvnt = snmp.send(pdu, target);          // 解析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());                 }          }       }        public static void main(String[] args){           try {               SnmpGet util = new SnmpGet();               util.initComm();               util.sendPDU();            } catch (IOException e) {                e.printStackTrace();            }       }}

原创粉丝点击