我正在使用Embarcadero RAD Studio XE3及其TIdSNMP Indy SNMP组件来准备SNMP陷阱通知并将其发送到企业服务器。我根据陷阱类型设置了12个varbinds,Wireshark正在查看并正确解析目标主机上的陷阱。看来我的结局工作正常。Indy SNMP陷阱是否有版本选项?
该系统的管理员一方似乎无法识别这些陷阱,无法根据实施团队对其进行解码。他们指出陷阱本身的SNMP版本项目,它是'v2u'。由于此版本已被弃用,他们希望看到版本'v2c',并且他们声称所有其他陷阱都是此版本。
问题是,我有什么选择,至于要发送什么版本的陷阱?我看到TIdSNMP :: Trap有一个版本成员;它是如此简单设置为3?
这是我使用的代码:
void SendTrap(int atcsfield)
{
/* TIdSnmp *snmp = new TIdSNMP(0); */
snmp->Trap->Clear();
snmp->Trap->Version = 2;
snmp->Trap->Community=String(cfg.snmp.community);
snmp->Trap->TimeTicks = GetTickCount() - InitialTickCount;
snmp->Trap->Enterprise=String(cfg.snmp.oid);
snmp->Trap->GenTrap=6;
snmp->Trap->SpecTrap=1;
for(int i=0;i<MAX_VARBINDS;i++)
{
if(svb[i].Length())
{
varb.sprintf("%s.1.%d",BaseOID.c_str(),i);
snmp->Trap->MIBAdd(varb,svb[i], ASN1_OCTSTR);
}
}
for(int i=0;i<MAX_VARBINDS;i++)
{
if(ivb[i]!=-1)
{
varb.sprintf("%s.1.%d",BaseOID.c_str(),i);
snmp->Trap->MIBAdd(varb, ivb[i], ASN1_INT);
}
}
snmp->Host = ManagerIpList->Strings[j];
snmp->SendTrap();
}
Indy的待办事项列表可能几乎一样糟糕,我的:提交2010年11月? ?谢谢 –
user3235770