我正在使用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