当前位置:  开发笔记 > 程序员 > 正文

检查通过SNMP进入的请求

如何解决《检查通过SNMP进入的请求》经验,为你挑选了1个好方法。

所以我还在学习SNMP,请放心.我正在使用snmp4j,而不仅仅是库,但是我已经加载了源代码,如果它能得到我需要的东西,我不反对修改源代码.我编写了一个代理和一个测试客户端.我想要做的是能够检查来自测试客户端的请求,特别是监听对特定OID的"设置"请求.

我正在考虑这样做的当前方式是在运行snmp4j方法fireProcessMessage(位于包中org.snmp4j.transport.DefaultUdpTranportMapping)后立即捕获请求,但我不知道代理如何查询自己的mib以获取oid.是否存在代理用于从其mib获取OID值的方法?

或者有更好的方法来捕获特定的SET请求吗?甚至可以做我想做的事情吗?基本上我想要做的是如果客户端将某个OID值设置为1(true),则运行另一个进程.



1> Nikhil..:

可以通过扩展CommandProcessor 并实现RequestHandler来完成

就像我做的那样

public class SNMPRequestProcessor extends CommandProcessor
{

SetHandler setHandler = new SetHandler ();

public SNMPRequestProcessor()
{
    //Your code
}


@Override
protected void processRequest(CommandResponderEvent command, CoexistenceInfo cinfo, RequestHandler handler)
{

    synchronized (command) {
        if (command.getPDU().getType() == PDU.SET) {
            super.processRequest(command, cinfo, setHandler);
        }

        super.processRequest(command, cinfo, handler);
    }

}

/**
 * Handler for process set request which update to the database
 * 
 */

class SetHandler implements RequestHandler
{

    @Override
    public boolean isSupported(int mode)
    {
        return mode == PDU.SET;
    }

    @Override
    public void processPdu(Request request, MOServer server)
    {
                 //your code
    }
}

}

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有