zoukankan      html  css  js  c++  java
  • snmp getTable demo :iftable ipAddresstable

    package org.huangxf.snmp.test;
    
    import java.io.IOException;
    import java.util.List;
    
    import org.snmp4j.CommunityTarget;
    import org.snmp4j.PDU;
    import org.snmp4j.Snmp;
    import org.snmp4j.Target;
    import org.snmp4j.TransportMapping;
    import org.snmp4j.mp.SnmpConstants;
    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;
    import org.snmp4j.util.PDUFactory;
    import org.snmp4j.util.TableEvent;
    import org.snmp4j.util.TableUtils;
    
    public class ipTable {
        public static void main(String[] args) {
            ipTable.collectInterface();
        }
    
        // 服务器接口集合
        public static void collectInterface() {
            TransportMapping transport = null;
            Snmp snmp = null;
            CommunityTarget target;
            String[] IF_OIDS = { "1.3.6.1.2.1.2.2.1.1", // Index
                    "1.3.6.1.2.1.2.2.1.2", // descr
                    "1.3.6.1.2.1.2.2.1.3", // type
                    "1.3.6.1.2.1.2.2.1.5", // speed
                    "1.3.6.1.2.1.2.2.1.6", // mac
                    "1.3.6.1.2.1.2.2.1.7", // adminStatus
                    "1.3.6.1.2.1.2.2.1.8", // operStatus
    
                    "1.3.6.1.2.1.2.2.1.10", // inOctets
                    "1.3.6.1.2.1.2.2.1.16", // outOctets
                    "1.3.6.1.2.1.2.2.1.14", // inError
                    "1.3.6.1.2.1.2.2.1.20", // outError
                    "1.3.6.1.2.1.2.2.1.13", // inDiscard
                    "1.3.6.1.2.1.2.2.1.19", // outDiscard
                    "1.3.6.1.2.1.2.2.1.11", // inUcastPkts
                    "1.3.6.1.2.1.2.2.1.17", // outUcastPkts
                    "1.3.6.1.2.1.2.2.1.12", // inNUcastPkts
                    "1.3.6.1.2.1.2.2.1.18" };// outNUcastPkts
            String[] IP_OIDS = { "1.3.6.1.2.1.4.20.1.1", // ipAdEntAddr
                    "1.3.6.1.2.1.4.20.1.2", // ipAdEntIfIndex
                    "1.3.6.1.2.1.4.20.1.3" ,// ipAdEntNetMask
                    "1.3.6.1.2.1.4.20.1.4" ,//ipAdentBcastAddr
                    "1.3.6.1.2.1.4.20.1.5" };//ipAdEntReasmMaxSize
            try {
                transport = new DefaultUdpTransportMapping();
                snmp = new Snmp(transport);
                snmp.listen();
                target = new CommunityTarget();
                target.setCommunity(new OctetString("public"));
                target.setRetries(2);
                target.setAddress(GenericAddress.parse("udp:127.0.0.1/161"));
                target.setTimeout(8000);
                target.setVersion(SnmpConstants.version2c);
                TableUtils tableUtils = new TableUtils(snmp, new PDUFactory() {
                    @Override
                    public PDU createPDU(Target arg0) {
                        PDU request = new PDU();
                        request.setType(PDU.GET);
                        return request;
                    }
                });
                OID[] columns = new OID[IF_OIDS.length];
                for (int i = 0; i < IF_OIDS.length; i++)
                    columns[i] = new OID(IF_OIDS[i]);
                @SuppressWarnings("unchecked")
                List<TableEvent> list = tableUtils.getTable(target, columns, null, null);
                if (list.size() == 1 && list.get(0).getColumns() == null) {
                    System.out.println(" null");
                } else {
                    for (TableEvent event : list) {
                        VariableBinding[] values = event.getColumns();
                        if (values == null)
                            continue;
                        System.out.println("interface ---Index:" + values[0].getVariable().toString() + "  descr:"
                             + "  type:"
                                + values[2].getVariable().toString() + " speed:" + values[3].getVariable().toString()
                                + " mac:" 
                                + values[5].getVariable().toString() + "  operStatus:"
                                + values[6].getVariable().toString());
    //                    System.out.println("interface ---Index:" + values[0].getVariable().toString() + "  descr:"
    //                            + getChinese(values[1].getVariable().toString()) + "  type:"
    //                            + values[2].getVariable().toString() + " speed:" + values[3].getVariable().toString()
    //                            + " mac:" + getChinese(values[4].getVariable().toString()) + " adminStatus:"
    //                            + values[5].getVariable().toString() + "  operStatus:"
    //                            + values[6].getVariable().toString());
                    }
                }
                // 获取ip
                OID[] ipcolumns = new OID[IP_OIDS.length];
                for (int i = 0; i < IP_OIDS.length; i++)
                    ipcolumns[i] = new OID(IP_OIDS[i]);
                @SuppressWarnings("unchecked")
                List<TableEvent> iplist = tableUtils.getTable(target, ipcolumns, null, null);
                if (iplist.size() == 1 && iplist.get(0).getColumns() == null) {
                    System.out.println(" null");
                } else {
                    for (TableEvent event : iplist) {
                        VariableBinding[] values = event.getColumns();
                        if (values == null)
                            continue;
                        System.out.println(" IP--->ipAdEntAddr:" + values[0].getVariable().toString() + "   ipAdEntIfIndex:"
                                + values[1].getVariable().toString() + "   ipAdEntNetMask:"
                                + values[2].getVariable().toString() + " 3:" + values[3].getVariable().toString()
                                + " 4:" 
                                + values[4].getVariable().toString() );
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if (transport != null)
                        transport.close();
                    if (snmp != null)
                        snmp.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
  • 相关阅读:
    [luoguP2770] 航空路线问题(最小费用最大流)
    javascript技巧大全套
    jLim
    自己封装的Ajax
    JavaScript函数调用规则
    JavaScript模板引擎使用
    JavaScript MD5
    JavaScript SHA-1
    JavaScript Map对象的实现
    javascript中的_return_false和return_true
  • 原文地址:https://www.cnblogs.com/alamps/p/5391918.html
Copyright © 2011-2022 走看看