`
yuanlijia1
  • 浏览: 113761 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

读MIB文件

    博客分类:
  • java
阅读更多
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import com.sinoufc.base.monitor.item.model.MibObject;

import net.percederberg.mibble.Mib;
import net.percederberg.mibble.MibLoader;
import net.percederberg.mibble.MibLoaderException;
import net.percederberg.mibble.MibValue;
import net.percederberg.mibble.MibValueSymbol;
import net.percederberg.mibble.snmp.SnmpObjectType;

public class Test {

    /**
     * @param args
     * @throws MibLoaderException
     * @throws IOException
     */
    public static void main(String[] args) throws IOException, MibLoaderException {
        Test t = new Test();
        //String content = t.readFile();
        // System.err.println("content==="+content);
        t.aa();

    }

    @SuppressWarnings( { "unchecked" })
    public void aa() throws IOException, MibLoaderException {
        String filePath = this.getClass().getResource("/").getPath() + "RFC1315-MIB.mib";
        File file = new File(filePath);
        MibLoader ml = new MibLoader();
        Mib mib = ml.load(file);
        String mibName = mib.getName();

        System.err.println("mibName===" + mibName);
        System.err.println("-------------------------------------");
        String syntax = "";
        String access = "";
        String status = "";
        List<MibObject> list = new ArrayList<MibObject>();
        Collection c = mib.getAllSymbols();
        Iterator it = c.iterator();
        while (it.hasNext()) {
            Object obj = it.next();
            if (obj instanceof MibValueSymbol) {
                MibObject mo = new MibObject();
                MibValueSymbol mvs = (MibValueSymbol) obj;
                SnmpObjectType sot = null;
                if (mvs.getType() instanceof SnmpObjectType) {
                    sot = (SnmpObjectType) mvs.getType();
                }
                if (sot != null ) {
                    syntax = sot.getSyntax().getName();
                    access = sot.getAccess().toString();
                    status = sot.getStatus().toString();
                }
                //是否为表的列
                boolean isTableColumn = mvs.isTableColumn();
                String name = mvs.getName();
                MibValue value = mvs.getValue();
                MibValueSymbol parent = mvs.getParent();
                String parentValue = "";
                System.err.println("name==" + name);
                System.err.println("value==" + value);
                System.err.println("isTableColumn==" + isTableColumn);
                if (parent != null) {
                    parentValue = parent.getValue().toString();
                    if (parent.getParent()==null){
                        System.err.println("supperParentName======" + mibName);
                        System.err.println("supperParentValue=====" + parentValue);
                        //parent=root
                        
                    }
                    System.err.println("parentName=" + parent.getName());
                    System.err.println("parentValue=" + parent.getValue());
                    
                } else {
                }
                System.err.println("syntax=" + syntax);
                System.err.println("access=" + access);
                System.err.println("status=" + status);
                System.err.println("-------------------------------------");
                mo.setName(name);
                mo.setValue(value.toString());
                mo.setParent(parentValue);
                mo.setSyntax(syntax);
                mo.setAccess(access);
                mo.setStatus(status);
                list.add(mo);
            } 
            //System.out.println(it.next());
        }

        MibValueSymbol mvs = mib.getSymbolByOid("1.3.6.1.2.1.10");
        System.err.println("mvs.getName()=" + mvs.getName());
        System.err.println("mvs.getValue()=" + mvs.getValue());
        MibValueSymbol parent = mvs.getParent();
        System.err.println("parent=" + parent);

    }
}

分享到:
评论
2 楼 ksfsb0345299 2017-07-28  
com.sinoufc.base.monitor.item.model.MibObject;
这个是那个JAR包。求分享。谢谢
1 楼 di1984HIT 2017-07-08  
学习了~~~

相关推荐

    JAVA基于SNMP网络设备MIB信息采集(论文+源代码+读书笔记)

    中间层在底层的基础上定义了MIB对象,负责OID与MIB对象间的转换,分析MIB信息文件以生成MIB树型结构,单个MIB变量信息查询等功能;顶层,即界面层则在中间层的基础上实现了用户界面。设计中运用Java语言,运用Java-...

    JAVA上百实例源码以及开源项目

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    sizeof:sizeof是一个命令行程序,用于确定文件和目录的大小(以字节为单位)和文件数。 它是用C ++编写的

    sizeof将以人类可读的单位(字节,KiB,MiB,GiB)输出大小,如果输入的是目录,则输出文件数。 由于大小无法确定而被跳过的任何文件都将被打印。 样品运行: sizeof ~ SKIPPED: size is not determinable: "/home/...

    FileHandlingTest:Ubuntu 20.04中的文件处理测试(带有C库和系统调用功能)

    文件处理测试Ubuntu 20.04中的文件处理测试(带有C库和系统调用功能)... 例如)a.out读c 在原始文件中,包括偏移量数据,读取偏移量〜偏移量+字节,如果没有更多数据,则在终端中打印,读取到文件末尾例如)a.out合并

    服务器硬件性能.pptx

    I/O指标计算 - /proc/diskstats文件 以读数据为例: 读吞吐 = (两个采样点read扇区数的差值(6))* 扇区大小(512KB) / 采样间隔 IOPS = (两个采样点read操作总次数的差值(4))/ 采样间隔 利用率 = (两个采样点read...

    JAVA上百实例源码以及开源项目源代码

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    trapdirector:Icingaweb2模块,用于接收和处理snmp陷阱

    将OID解码为人类可读的名称,包括通过Icingaweb2 GUI添加MIB文件的功能。 项目状态: 此模块已在CentOS 7,Ubuntu 18.04(Bionic)等上安装和测试。 如果有问题或功能要求,请。 把招工广告: 英语不是我的...

    mmccopy:dd 的方便替代品,用于将图像写入 SDCards

    默认情况下,批量写入 1 MiB 块以提高传输速率。 ( dd默认为 512 字节块,不带bs参数) 自动卸载正在使用设备的分区。 这可以防止由于来自挂载文件系统的潜在写入或由于图像写入被缓存而导致的数据损坏。 提供...

    java开源包1

    该框架封装了线程处理、异步读/写等方面。 Java多线程程序死锁检查 JCarder JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 ...

    java开源包11

    该框架封装了线程处理、异步读/写等方面。 Java多线程程序死锁检查 JCarder JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 ...

    java开源包2

    该框架封装了线程处理、异步读/写等方面。 Java多线程程序死锁检查 JCarder JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 ...

    java开源包3

    该框架封装了线程处理、异步读/写等方面。 Java多线程程序死锁检查 JCarder JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 ...

    java开源包6

    该框架封装了线程处理、异步读/写等方面。 Java多线程程序死锁检查 JCarder JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 ...

    java开源包5

    该框架封装了线程处理、异步读/写等方面。 Java多线程程序死锁检查 JCarder JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 ...

    java开源包10

    该框架封装了线程处理、异步读/写等方面。 Java多线程程序死锁检查 JCarder JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 ...

    java开源包4

    该框架封装了线程处理、异步读/写等方面。 Java多线程程序死锁检查 JCarder JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 ...

    java开源包8

    该框架封装了线程处理、异步读/写等方面。 Java多线程程序死锁检查 JCarder JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 ...

    java开源包7

    该框架封装了线程处理、异步读/写等方面。 Java多线程程序死锁检查 JCarder JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 ...

    java开源包9

    该框架封装了线程处理、异步读/写等方面。 Java多线程程序死锁检查 JCarder JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 ...

Global site tag (gtag.js) - Google Analytics