Info Agent的SNMP

时间:2011-06-06 15:44:55

标签: snmp

我有一些问题:

在我的系统(例如windows)中,有许多DLL扩展代理附加了snmp服务

当请求来到服务snmp“Snmp.exe”时,它会将请求发送给所有代理还是只发送一个?

我如何知道哪些人可以回答此请求?

由于

2 个答案:

答案 0 :(得分:1)

主代理的工作是处理SNMP的注册,每个DLL都会注册它能够提供的信息。 SNMP中的信息在OID表示的树结构下注册。代理非常聪明,可以根据被询问的传入OID知道哪个DLL(或子代理)能够提供请求。

您可以考虑阅读描述“AgentX”协议的RFC2741。虽然这涉及协议而不是DLL,但它在底层工作的基本方式应该非常相似。

答案 1 :(得分:1)

@Wes回复没问题。这只是一个补充。如“How to add an SNMP extension agent to the NT registry”中所述,您可以在以下所示的注册表项中找到DLL扩展:

Windows Server NT4到Windows Server 2003 R2(Workstatio,W2K,XP):

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameter\ExtensionAgents

开始使用Windows 2008(Vista):

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SNMP\Parameters\ExtensionAgents

每个DLL公开SnmpExtensionInit函数,该函数将supportedView报告为OID。

BOOL WINAPI SnmpExtensionInit (DWORD dwTimeZeroReference,
                               HANDLE *hPollForTrapEvent,
                               AsnObjectIdentifier *supportedView);

我编写了一个包装器程序,只需加载DLL并调用该函数来报告响应,如果需要,可以下载并尝试slxSNMPInfo。对不起,该网站是法语,但EXE文件中的字符串是英文。

enter image description here