Windows SNMP扩展代理 - snmp4j

时间:2016-04-06 19:17:04

标签: java windows snmp mib snmp4j

我目前有一个使用snmp4j构建的代理,它实现了一些自定义mib。我想要做的是在windows下运行这个snmp4j代理作为windows snmp服务的snmp扩展代理。原因是我需要这个新的snmp4j代理来处理来自我的自定义mib和windows snmp服务的信息的snmp请求来处理mib2信息的请求。如果有任何人有使用Windows snmp扩展代理和snmp4j的经验,并且可以给我一些如何实现这一点的提示,或者甚至可以使用snmp4j,我将非常感激。感谢

1 个答案:

答案 0 :(得分:1)

Microsoft已将SNMP代理设计为服务。该服务执行协议级别的所有脏工作(ASN.1 / BER编码和解码)。为了开发扩展代理,我们必须在Windows SNMP服务之上实现扩展代理DLL

要创建扩展代理,您需要创建一个Win32 DLL,在此DLL中,您需要定义,实现和导出以下函数:

BOOL SNMP_FUNC_TYPE SnmpExtensionInit(DWORD dwUptimeReference,
                    HANDLE *phSubagentTrapEvent,
                    AsnObjectIdentifier *pFirstSupportedRegion)

BOOL SNMP_FUNC_TYPE SnmpExtensionQuery(BYTE bPduType, 
                    SnmpVarBindList *pVarBindList, 
                    AsnInteger32 *pErrorStatus, 
                    AsnInteger32 *pErrorIndex)

// trap handler
BOOL SNMP_FUNC_TYPE SnmpExtensionTrap(AsnObjectIdentifier *pEnterpriseOid, 
                    AsnInteger32 *pGenericTrapId, 
                    AsnInteger32 *pSpecificTrapId, 
                    AsnTimeticks *pTimeStamp, 
                    SnmpVarBindList *pVarBindList)

不幸的是,您无法使用SNMP4J库实现MS SNMP代理扩展。