gpt4 book ai didi

snmp - 检查通过 SNMP 传入的请求

转载 作者:行者123 更新时间:2023-12-04 22:35:45 27 4
gpt4 key购买 nike

所以我还在学习SNMP,请放轻松。我正在使用 snmp4j,不仅是库,而且我已经加载了源代码,如果它满足我的需要,我不反对修改源代码。我已经编写了一个代理和一个测试客户端。我想要做的是能够检查来自测试客户端的请求,并专门监听对特定 OID 的“设置”请求。

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

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

最佳答案

可以通过扩展 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
}
}

}

关于snmp - 检查通过 SNMP 传入的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6928302/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com