예제 #1
0
        private static void configTrap(TrapMessage trap, int ver, SnmpPacket packet)
        {
            trap.SnmpVersion = (SnmpVersionType)ver;
            trap.ReceiveTime = System.DateTime.Now;
            if (trap.SnmpVersion == SnmpVersionType.Ver1)
            {
                ((TrapV1Message)trap).SnmpVersion = (SnmpVersionType)ver;
                ((TrapV1Message)trap).Enterprise  = ((SnmpV1TrapPacket)packet).TrapPdu.Enterprise.ToString();
                ((TrapV1Message)trap).GenericTrap = ((SnmpV1TrapPacket)packet).TrapPdu.Generic.ToString();
                ((TrapV1Message)trap).Specific    = ((SnmpV1TrapPacket)packet).TrapPdu.Specific.ToString();
                ((TrapV1Message)trap).TimeStamp   = ((SnmpV1TrapPacket)packet).TrapPdu.TimeStamp.ToString();
                ((TrapV1Message)trap).Community   = ((SnmpV1TrapPacket)packet).Community.ToString();
                return;
            }
            TrapDesc trapDesc = new TrapDesc();

            trapDesc.TrapObjectID      = packet.Pdu.TrapObjectID.ToString();
            trapDesc.TrapSysUpTime     = packet.Pdu.TrapSysUpTime.ToString();
            trapDesc.ErrorIndex        = packet.Pdu.ErrorIndex.ToString();
            trapDesc.ErrorStatus       = packet.Pdu.ErrorStatus.ToString();
            trapDesc.ErrorStatusString = SnmpError.ErrorMessage(packet.Pdu.ErrorStatus);
            if (trap.SnmpVersion == SnmpVersionType.Ver2)
            {
                ((TrapV2Message)trap).Community = ((SnmpV2Packet)packet).Community.ToString();
                ((TrapV2Message)trap).TrapDesc  = trapDesc;
                return;
            }
            ((TrapV3Message)trap).EngineId     = ((SnmpV3Packet)packet).USM.EngineId.ToString();
            ((TrapV3Message)trap).SecurityName = ((SnmpV3Packet)packet).USM.SecurityName.ToString();
            ((TrapV3Message)trap).TrapDesc     = trapDesc;
        }
예제 #2
0
        private void configVb(TrapMessage trap, int ver, SnmpPacket packet)
        {
            VbCollection vbList;

            if (ver == 0)
            {
                vbList = ((SnmpV1TrapPacket)packet).TrapPdu.VbList;
            }
            else
            {
                vbList = packet.Pdu.VbList;
            }
            new System.Text.StringBuilder();
            foreach (Vb current in vbList)
            {
                if (!trap.VarBindings.ContainsKey(current.Oid.ToString()))
                {
                    trap.VarBindings.Add(current.Oid.ToString(), current.Value.ToString());
                }
            }
        }