65.9K
CodeProject 正在变化。 阅读更多。
Home

编辑(添加/删除/修改)ARP表

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.91/5 (9投票s)

2007年12月27日

CPOL

4分钟阅读

viewsIcon

95689

downloadIcon

3523

一个用于显示和修改地址解析协议(ARP)使用的IP到物理地址转换表的工具。

Screenshot - ARPTable

引言

这是一个用于显示和修改ARP(地址解析协议)使用的IP到物理地址转换表的工具,类似于Windows命令行工具arp.exe。该工具将执行两项操作:显示ARP表条目,以及添加/修改/删除ARP条目。这些操作通过请求SNMP(简单网络管理协议)扩展库来实现。

通过SNMP访问IP和MAC地址

您可以通过SNMP读取和修改ARP表,方法是请求SNMP来获取/设置对象信息。SNMP通过MIB(管理信息库)进行请求和响应。MIB就像一棵树,包含所有可管理的对象。有关更多信息,请查看RFC1213。还可以查看%SystemRoot%\system32\*.mib下的文件。我们将使用的条目文件是%SystemRoot%\system32\mib_ii.mib。您可以使用记事本打开并查看它。

这是一个MIB ipNetToMediaEntry 条目

ipNetToMediaEntry OBJECT-TYPE
              SYNTAX  IpNetToMediaEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Each entry contains one IpAddress to 'physical'
                      address equivalence."
              INDEX   { ipNetToMediaIfIndex,
                        ipNetToMediaNetAddress }
              ::= { ipNetToMediaTable 1 }

MIB通过OID(对象标识符)编号来访问对象。每个对象都有一个编号,子对象具有父对象编号和自己的编号。编号之间用点"."分隔。例如,如果父对象编号为“1”,子对象编号为“3”,则子对象的OID编号将是“1.3”,子对象的子对象可能是“1.3.6”,…“1.3.6.1.2.1”,依此类推。

这是对象树的简单草图

Screenshot - OID ipNetToMediaEntry

初始化类

我使用了SnmpExtensionQuery函数来解析SNMP请求,但在使用它之前,您必须调用SnmpExtensionInit函数来初始化SNMP扩展代理DLL。这两个函数都存在于Microsoft库inetmib1.dll中,因此在类构造函数中,我加载此库并获取这些函数的地址,然后调用SnmpExtensionInit来初始化SNMP扩展代理DLL。

这是CARP类的构造函数

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CARP::CARP()
{
    // Load dynamic library: inetmib1.dll
    hMIBLibrary    = LoadLibrary(TEXT("inetmib1.dll"));

    // If library loaded, get addresses of (SnmpExtensionInit,
    // pfnSnmpExtensionQuery) functions
    if (hMIBLibrary)
    {
        pfnSnmpExtensionInit    = (PFNSNMPEXTENSIONINIT)  GetProcAddress(hMIBLibrary, 
                                   "SnmpExtensionInit");
        pfnSnmpExtensionQuery   = (PFNSNMPEXTENSIONQUERY) GetProcAddress(hMIBLibrary, 
                                   "SnmpExtensionQuery");

        // If success get addresses and initialize SNMP, bInitialized = true
        if (pfnSnmpExtensionInit && pfnSnmpExtensionQuery)
        {
            HANDLE              hPollForTrapEvent;
            AsnObjectIdentifier aoiSupportedView;

            bInitialized        = pfnSnmpExtensionInit(0, &hPollForTrapEvent, 
                                                       &aoiSupportedView);
        }
    }
    else
    {
        // If fail to get addresses, bInitialized = false
        bInitialized            = FALSE;
        AfxMessageBox(_T("Load library fail"));
    }
}

获取ARP条目

GetEntries函数获取ARP条目,类似于arp.exe -a。它接受三个参数:pTable,指向将填充IP和MAC地址的arpTable结构数组的指针;TableLength,数组的长度;AdapterIndex,NIC适配器索引号。我使用了三个OID来获取ARP表条目。OID[0] = "1.3.6.1.2.1.4.22.1.1"用于获取条目的接口索引并将其与AdapterIndex参数进行比较;OID[1] = "1.3.6.1.2.1.4.22.1.2"用于获取IP和MAC地址;OID[2] = "1.3.6.1.2.1.4.22.1.4"用于获取条目类型(静态或动态)。

//-----------------------------------------------------------------------
// Function:          GetEntries: Read ARP table for specific NIC interface.
//
// Parameters:
//    pTable          Pointer to array of arpTable struct
//    TableLength     Length of the array
//    AdapterIndex    NIC Adapter index number
//
// Returns:
//                    Number of read ARP entries
//-----------------------------------------------------------------------
int CARP::GetEntries(arpTable* pTable, int TableLength, int AdapterIndex)
{
    // Be sure initialize SNMP true
    if (!bInitialized)
        return 0;

    SnmpVarBindList        SVBList[3];
    SnmpVarBind            SVBVars[3];
    UINT                   OID[3][10];
    AsnInteger32           aiErrorStatus[3], aiErrorIndex[3];
    AsnObjectIdentifier    AsnOID0 = {sizeof(OID[0])/sizeof(UINT), OID[0]};
    AsnObjectIdentifier    AsnOID1 = {sizeof(OID[1])/sizeof(UINT), OID[1]};
    AsnObjectIdentifier    AsnOID2 = {sizeof(OID[2])/sizeof(UINT), OID[2]};
    unsigned long          pIPAddress;
    unsigned long          pMACAddress;
    int                    iEntries;

    
    //-----------------------------------------------------------------------
    //    Fill array of 3 OIDs
    //    
    //    OID[0]    : "1.3.6.1.2.1.4.22.1.1", ipNetToMediaIfIndex
    //                The interface on which this entry's equivalence is effective
    //
    //    OID[1]    : "1.3.6.1.2.1.4.22.1.2", ipNetToMediaPhysAddress
    //                The media-dependent 'physical' address
    //
    //    OID[2]    : "1.3.6.1.2.1.4.22.1.4", ipNetToMediaType
    //                Entry type: 1:Other, 2:Invalid(Remove), 3:Dynamic, 4:Static
    //
    for (int count=0; count<3; count++)
    {
        OID[count][0]        = 1;
        OID[count][1]        = 3;
        OID[count][2]        = 6;
        OID[count][3]        = 1;
        OID[count][4]        = 2;
        OID[count][5]        = 1;
        OID[count][6]        = 4;
        OID[count][7]        = 22;
        OID[count][8]        = 1;

        switch(count)
        {
        case 0:
            // Adapter interface
            OID[count][9]    = 1;
            break;

        case 1:
            // MAC address
            OID[count][9]    = 2;
            break;

        case 2:
            // Entry Type
            OID[count][9]    = 4;
            break;
        }
    }

    ZeroMemory(pTable, sizeof(arpTable)*TableLength);

    SVBList[0].len  = 1;
    SVBList[0].list = &SVBVars[0];
    SnmpUtilOidCpy(&SVBVars[0].name, &AsnOID0);

    SVBList[1].len  = 1;
    SVBList[1].list = &SVBVars[1];
    SnmpUtilOidCpy(&SVBVars[1].name, &AsnOID1);

    SVBList[2].len  = 1;
    SVBList[2].list = &SVBVars[2];
    SnmpUtilOidCpy(&SVBVars[2].name, &AsnOID2);

    iEntries        = 0;
    do
    {
        aiErrorStatus[0]    = 0;
        aiErrorIndex[0]     = 0;
        aiErrorStatus[1]    = 0;
        aiErrorIndex[1]     = 0;
        aiErrorStatus[2]    = 0;
        aiErrorIndex[2]     = 0;

        // Query information of 3 OIDs
        if (pfnSnmpExtensionQuery(SNMP_PDU_GETNEXT, &SVBList[0], 
                                  &aiErrorStatus[0], &aiErrorIndex[0]))
            if (pfnSnmpExtensionQuery(SNMP_PDU_GETNEXT, &SVBList[1], 
                                      &aiErrorStatus[1], &aiErrorIndex[1]))
                if (pfnSnmpExtensionQuery(SNMP_PDU_GETNEXT, &SVBList[2], 
                                          &aiErrorStatus[2], &aiErrorIndex[2]))
                    if (aiErrorStatus[0] == SNMP_ERRORSTATUS_NOERROR &&
                        aiErrorStatus[1] == SNMP_ERRORSTATUS_NOERROR &&
                        aiErrorStatus[2] == SNMP_ERRORSTATUS_NOERROR)
                        // Check for error
                    {
                        //----------------------------------------------------------
                        // From MSDN Help:
                        //   http://msdn2.microsoft.com/en-us/library/aa378021.aspx
                        // 
                        // If the extension agent cannot resolve
                        // the variable bindings on a Get Next request, 
                        // it must change the name field of the SnmpVarBind
                        // structure to the value of the object 
                        // identifier immediately following that
                        // of the currently supported MIB subtree view. 
                        // For example, if the extension agent supports
                        // view ".1.3.6.1.4.1.77.1", a Get Next 
                        // request on ".1.3.6.1.4.1.77.1.5.1"
                        // would result in a modified name
                        // field of ".1.3.6.1.4.1.77.2". 
                        // This signals the SNMP service to continue
                        // the attempt to resolve the variable
                        // bindings with other extension agents
                        //----------------------------------------------------------

                        if(SnmpUtilOidNCmp(&SVBVars[0].name, 
                                &AsnOID0, AsnOID0.idLength)) 
                            break;
                        if(SnmpUtilOidNCmp(&SVBVars[1].name, 
                                &AsnOID1, AsnOID1.idLength)) 
                            break;
                        if(SnmpUtilOidNCmp(&SVBVars[2].name, 
                                &AsnOID2, AsnOID2.idLength)) 
                            break;

                        // Verify selected Adapter interface
                        if (AdapterIndex == SVBList[0].list->value.asnValue.number)
                        {
                            // pIPAddress get pointer ro IP Address
                            pIPAddress        = (unsigned long)SVBList[1].list->name.ids;
                            pTable[iEntries].IPAddress[0] = 
                                   *(unsigned char *)(pIPAddress + 44);
                            pTable[iEntries].IPAddress[1] = 
                                   *(unsigned char *)(pIPAddress + 48);
                            pTable[iEntries].IPAddress[2] = 
                                   *(unsigned char *)(pIPAddress + 52);
                            pTable[iEntries].IPAddress[3] = 
                                   *(unsigned char *)(pIPAddress + 56);

                            // pIPAddress get pointer ro MAC Address
                            pMACAddress        = 
                              (unsigned long)SVBList[1].list->value.asnValue.string.stream;
                            if (pMACAddress)
                            {
                                pTable[iEntries].MACAddress[0] = 
                                       *(unsigned char *)(pMACAddress + 0);
                                pTable[iEntries].MACAddress[1] = 
                                       *(unsigned char *)(pMACAddress + 1);
                                pTable[iEntries].MACAddress[2] = 
                                       *(unsigned char *)(pMACAddress + 2);
                                pTable[iEntries].MACAddress[3] = 
                                       *(unsigned char *)(pMACAddress + 3);
                                pTable[iEntries].MACAddress[4] = 
                                       *(unsigned char *)(pMACAddress + 4);
                                pTable[iEntries].MACAddress[5] = 
                                       *(unsigned char *)(pMACAddress + 5);
                            }

                            // Entry Type
                            pTable[iEntries].Type    = 
                             (unsigned long)SVBList[2].list->value.asnValue.number;

                            // Type must be one of (1, 2, 3, 4)
                            if (pTable[iEntries].Type>=1 && pTable[iEntries].Type<=4)
                                iEntries++;        // Move to next array position
                        }
                    }
                    else
                        break;    // If error exit do-while
    }
    while(iEntries < TableLength);

    // Frees the memory allocated for the specified object identifiers
    SnmpUtilOidFree(&SVBVars[2].name);
    SnmpUtilOidFree(&SVBVars[1].name);
    SnmpUtilOidFree(&SVBVars[0].name);

    return iEntries;    // Return number of Entries
}

编辑ARP条目

EditEntry函数添加/修改/删除ARP条目。它添加动态条目,类似于arp.exe 1.2.3.4 11-22-33-44-55-66,静态条目,类似于arp.exe –s 1.2.3.4 11-22-33-44-55-66,或者删除条目,类似于arp.exe –d 1.2.3.4。当您添加新条目时,如果条目IP地址不在ARP表中,则该条目将被添加到表中。否则,如果条目IP地址已存在于ARP表中,则该条目将被更新。要删除条目,您只需要IP地址来标识NIC接口上的条目。删除操作不需要MAC地址。该函数接受四个参数:IPAddress,由4个BYTE组成的数组,IP地址的4个字节;MACAddress,由4个BYTE组成的数组,MAC地址的6个字节;Entry type(2:删除,3:动态,4:静态);AdapterIndex - NIC适配器索引号。我使用了四个OID来设置ARP表条目:OID[0] = "1.3.6.1.2.1.4.22.1.1",用于设置条目的接口索引;OID[1] = "1.3.6.1.2.1.4.22.1.2",用于设置MAC地址;OID[3] = "1.3.6.1.2.1.4.22.1.3",用于设置IP地址;OID[2] = "1.3.6.1.2.1.4.22.1.4",用于设置条目类型(静态或动态),或删除条目。

//-----------------------------------------------------------------------
// Function:    EditEntry: Add/Modify/Remove ARP entry for specific NIC interface.
//
// Parameters:
//    IPAddress       Array of 4 BYTES, 4 octs of IP Address
//    MACAddress      Array of 4 BYTES, 6 octs of MAC Address
//    Type            Entry type (2:Remove, 3:Dynamic, 4:Static)
//    AdapterIndex    NIC Adapter index number
//
// Returns:
//                    TRUE if set successfully, FALSE otherwise.
//-----------------------------------------------------------------------
BOOL CARP::EditEntry(unsigned char IPAddress[4], unsigned char MACAddress[6], 
                     unsigned long Type, int AdapterIndex)
{
    if (!bInitialized)
        return 0;

    SnmpVarBindList     SVBList;
    SnmpVarBind         SVBVars[4];
    UINT                OID[4][10];
    AsnInteger32        aiErrorStatus, aiErrorIndex;
    BOOL                bReturn    = FALSE;

    //-----------------------------------------------------------------------
    //    Fill array of 4 OIDs
    //    
    //    OID[0]    : "1.3.6.1.2.1.4.22.1.1", ipNetToMediaIfIndex
    //                The interface on which this entry's equivalence is effective
    //
    //    OID[1]    : "1.3.6.1.2.1.4.22.1.2", ipNetToMediaPhysAddress
    //                The media-dependent 'physical' address
    //
    //    OID[2]    : "1.3.6.1.2.1.4.22.1.3", ipNetToMediaNetAddress
    //                The IpAddress corresponding to the media-dependent 'physical' address
    //
    //    OID[3]    : "1.3.6.1.2.1.4.22.1.4", ipNetToMediaType
    //                Entry type: 1:Other, 2:Invalid(Remove), 3:Dynamic, 4:Static
    //-----------------------------------------------------------------------
    for (int count=0; count<4; count++)
    {
        OID[count][0]        = 1;
        OID[count][1]        = 3;
        OID[count][2]        = 6;
        OID[count][3]        = 1;
        OID[count][4]        = 2;
        OID[count][5]        = 1;
        OID[count][6]        = 4;
        OID[count][7]        = 22;
        OID[count][8]        = 1;
        OID[count][9]        = 1 + count;

        switch(count)
        {
        case 0:
            //    OID[0]    : "1.3.6.1.2.1.4.22.1.1", ipNetToMediaIfIndex
            //                The interface on which this entry's equivalence is effective
            SVBVars[count].value.asnType                = ASN_INTEGER;
            SVBVars[count].value.asnValue.number        = AdapterIndex;
            break;

        case 1:
            //    OID[1]    : "1.3.6.1.2.1.4.22.1.2", ipNetToMediaPhysAddress
            //                The media-dependent 'physical' address
            SVBVars[count].value.asnType                = ASN_OCTETSTRING;
            SVBVars[count].value.asnValue.string.stream = MACAddress;
            SVBVars[count].value.asnValue.string.length = 6;    // MAC Address length
            SVBVars[count].value.asnValue.string.dynamic= FALSE;
            break;

        case 2:
            //    OID[2]    : "1.3.6.1.2.1.4.22.1.3", ipNetToMediaNetAddress
            //                The IpAddress corresponding
            //                to the media-dependent 'physical' address
            SVBVars[count].value.asnType                = ASN_IPADDRESS;
            SVBVars[count].value.asnValue.string.stream = IPAddress;
            SVBVars[count].value.asnValue.string.length = 4;    // IP Address length
            SVBVars[count].value.asnValue.string.dynamic= FALSE;
            break;

        case 3:
            //    OID[3]    : "1.3.6.1.2.1.4.22.1.4", ipNetToMediaType
            //                Entry type: 2:Remove, 3:Dynamic, 4:Static
            SVBVars[count].value.asnType                = ASN_INTEGER;
            SVBVars[count].value.asnValue.number        = Type;
            break;
        }
        AsnObjectIdentifier    AsnOID = {sizeof(OID[count])/sizeof(UINT), OID[count]};
        SnmpUtilOidCpy(&SVBVars[count].name, &AsnOID);
    }

    SVBList.len     = 4;
    SVBList.list    = SVBVars;

    aiErrorStatus   = 0;
    aiErrorIndex    = 0;

    // Set information of entry (4 OIDs)
    if (pfnSnmpExtensionQuery(SNMP_PDU_SET, &SVBList, &aiErrorStatus, &aiErrorIndex))
        if (aiErrorStatus == SNMP_ERRORSTATUS_NOERROR)
            bReturn = TRUE; // If success set bReturn = true

    // Frees the memory allocated for the specified object identifiers
    SnmpUtilOidFree(&SVBVars[3].name);
    SnmpUtilOidFree(&SVBVars[2].name);
    SnmpUtilOidFree(&SVBVars[1].name);
    SnmpUtilOidFree(&SVBVars[0].name);

    return bReturn;        // TRUE if set successfully, FALSE otherwise.
}

此外,您也可以使用相同的方式,通过合适的OID来添加/修改/删除路由表信息,请参阅一些RFC1213标识符。

mib-2                   node         1.3.6.1.2.1
system                  node         1.3.6.1.2.1.1
sysDescr                scalar       1.3.6.1.2.1.1.1
sysObjectID             scalar       1.3.6.1.2.1.1.2
sysUpTime               scalar       1.3.6.1.2.1.1.3
sysContact              scalar       1.3.6.1.2.1.1.4
sysName                 scalar       1.3.6.1.2.1.1.5
sysLocation             scalar       1.3.6.1.2.1.1.6
sysServices             scalar       1.3.6.1.2.1.1.7
interfaces              node         1.3.6.1.2.1.2
ifNumber                scalar       1.3.6.1.2.1.2.1
ifTable                 table        1.3.6.1.2.1.2.2
ifEntry                 row          1.3.6.1.2.1.2.2.1
ifIndex                 column       1.3.6.1.2.1.2.2.1.1
ifDescr                 column       1.3.6.1.2.1.2.2.1.2
ifType                  column       1.3.6.1.2.1.2.2.1.3
ifMtu                   column       1.3.6.1.2.1.2.2.1.4
ifSpeed                 column       1.3.6.1.2.1.2.2.1.5
ifPhysAddress           column       1.3.6.1.2.1.2.2.1.6
ifAdminStatus           column       1.3.6.1.2.1.2.2.1.7
ifOperStatus            column       1.3.6.1.2.1.2.2.1.8
ifLastChange            column       1.3.6.1.2.1.2.2.1.9
ifInOctets              column       1.3.6.1.2.1.2.2.1.10
ifInUcastPkts           column       1.3.6.1.2.1.2.2.1.11
ifInNUcastPkts          column       1.3.6.1.2.1.2.2.1.12
ifInDiscards            column       1.3.6.1.2.1.2.2.1.13
ifInErrors              column       1.3.6.1.2.1.2.2.1.14
ifInUnknownProtos       column       1.3.6.1.2.1.2.2.1.15
ifOutOctets             column       1.3.6.1.2.1.2.2.1.16
ifOutUcastPkts          column       1.3.6.1.2.1.2.2.1.17
ifOutNUcastPkts         column       1.3.6.1.2.1.2.2.1.18
ifOutDiscards           column       1.3.6.1.2.1.2.2.1.19
ifOutErrors             column       1.3.6.1.2.1.2.2.1.20
ifOutQLen               column       1.3.6.1.2.1.2.2.1.21
ifSpecific              column       1.3.6.1.2.1.2.2.1.22
at                      node         1.3.6.1.2.1.3
atTable                 table        1.3.6.1.2.1.3.1
atEntry                 row          1.3.6.1.2.1.3.1.1
atIfIndex               column       1.3.6.1.2.1.3.1.1.1
atPhysAddress           column       1.3.6.1.2.1.3.1.1.2
atNetAddress            column       1.3.6.1.2.1.3.1.1.3
ip                      node         1.3.6.1.2.1.4
ipForwarding            scalar       1.3.6.1.2.1.4.1
ipDefaultTTL            scalar       1.3.6.1.2.1.4.2
ipInReceives            scalar       1.3.6.1.2.1.4.3
ipInHdrErrors           scalar       1.3.6.1.2.1.4.4
ipInAddrErrors          scalar       1.3.6.1.2.1.4.5
ipForwDatagrams         scalar       1.3.6.1.2.1.4.6
ipInUnknownProtos       scalar       1.3.6.1.2.1.4.7
ipInDiscards            scalar       1.3.6.1.2.1.4.8
ipInDelivers            scalar       1.3.6.1.2.1.4.9
ipOutRequests           scalar       1.3.6.1.2.1.4.10
ipOutDiscards           scalar       1.3.6.1.2.1.4.11
ipOutNoRoutes           scalar       1.3.6.1.2.1.4.12
ipReasmTimeout          scalar       1.3.6.1.2.1.4.13
ipReasmReqds            scalar       1.3.6.1.2.1.4.14
ipReasmOKs              scalar       1.3.6.1.2.1.4.15
ipReasmFails            scalar       1.3.6.1.2.1.4.16
ipFragOKs               scalar       1.3.6.1.2.1.4.17
ipFragFails             scalar       1.3.6.1.2.1.4.18
ipFragCreates           scalar       1.3.6.1.2.1.4.19
ipAddrTable             table        1.3.6.1.2.1.4.20
ipAddrEntry             row          1.3.6.1.2.1.4.20.1
ipAdEntAddr             column       1.3.6.1.2.1.4.20.1.1
ipAdEntIfIndex          column       1.3.6.1.2.1.4.20.1.2
ipAdEntNetMask          column       1.3.6.1.2.1.4.20.1.3
ipAdEntBcastAddr        column       1.3.6.1.2.1.4.20.1.4
ipAdEntReasmMaxSize     column       1.3.6.1.2.1.4.20.1.5
ipRouteTable            table        1.3.6.1.2.1.4.21
ipRouteEntry            row          1.3.6.1.2.1.4.21.1
ipRouteDest             column       1.3.6.1.2.1.4.21.1.1
ipRouteIfIndex          column       1.3.6.1.2.1.4.21.1.2
ipRouteMetric1          column       1.3.6.1.2.1.4.21.1.3
ipRouteMetric2          column       1.3.6.1.2.1.4.21.1.4
ipRouteMetric3          column       1.3.6.1.2.1.4.21.1.5
ipRouteMetric4          column       1.3.6.1.2.1.4.21.1.6
ipRouteNextHop          column       1.3.6.1.2.1.4.21.1.7
ipRouteType             column       1.3.6.1.2.1.4.21.1.8
ipRouteProto            column       1.3.6.1.2.1.4.21.1.9
ipRouteAge              column       1.3.6.1.2.1.4.21.1.10
ipRouteMask             column       1.3.6.1.2.1.4.21.1.11
ipRouteMetric5          column       1.3.6.1.2.1.4.21.1.12
ipRouteInfo             column       1.3.6.1.2.1.4.21.1.13
ipNetToMediaTable       table        1.3.6.1.2.1.4.22
ipNetToMediaEntry       row          1.3.6.1.2.1.4.22.1
ipNetToMediaIfIndex     column       1.3.6.1.2.1.4.22.1.1
ipNetToMediaPhysAddress column       1.3.6.1.2.1.4.22.1.2
ipNetToMediaNetAddress  column       1.3.6.1.2.1.4.22.1.3
ipNetToMediaType        column       1.3.6.1.2.1.4.22.1.4
ipRoutingDiscards       scalar       1.3.6.1.2.1.4.23
icmp                    node         1.3.6.1.2.1.5
icmpInMsgs              scalar       1.3.6.1.2.1.5.1
icmpInErrors            scalar       1.3.6.1.2.1.5.2
icmpInDestUnreachs      scalar       1.3.6.1.2.1.5.3
icmpInTimeExcds         scalar       1.3.6.1.2.1.5.4
icmpInParmProbs         scalar       1.3.6.1.2.1.5.5
icmpInSrcQuenchs        scalar       1.3.6.1.2.1.5.6
icmpInRedirects         scalar       1.3.6.1.2.1.5.7
icmpInEchos             scalar       1.3.6.1.2.1.5.8
icmpInEchoReps          scalar       1.3.6.1.2.1.5.9
icmpInTimestamps        scalar       1.3.6.1.2.1.5.10
icmpInTimestampReps     scalar       1.3.6.1.2.1.5.11
icmpInAddrMasks         scalar       1.3.6.1.2.1.5.12
icmpInAddrMaskReps      scalar       1.3.6.1.2.1.5.13
icmpOutMsgs             scalar       1.3.6.1.2.1.5.14
icmpOutErrors           scalar       1.3.6.1.2.1.5.15
icmpOutDestUnreachs     scalar       1.3.6.1.2.1.5.16
icmpOutTimeExcds        scalar       1.3.6.1.2.1.5.17
icmpOutParmProbs        scalar       1.3.6.1.2.1.5.18
icmpOutSrcQuenchs       scalar       1.3.6.1.2.1.5.19
icmpOutRedirects        scalar       1.3.6.1.2.1.5.20
icmpOutEchos            scalar       1.3.6.1.2.1.5.21
icmpOutEchoReps         scalar       1.3.6.1.2.1.5.22
icmpOutTimestamps       scalar       1.3.6.1.2.1.5.23
icmpOutTimestampReps    scalar       1.3.6.1.2.1.5.24
icmpOutAddrMasks        scalar       1.3.6.1.2.1.5.25
icmpOutAddrMaskReps     scalar       1.3.6.1.2.1.5.26
tcp                     node         1.3.6.1.2.1.6
tcpRtoAlgorithm         scalar       1.3.6.1.2.1.6.1
tcpRtoMin               scalar       1.3.6.1.2.1.6.2
tcpRtoMax               scalar       1.3.6.1.2.1.6.3
tcpMaxConn              scalar       1.3.6.1.2.1.6.4
tcpActiveOpens          scalar       1.3.6.1.2.1.6.5
tcpPassiveOpens         scalar       1.3.6.1.2.1.6.6
tcpAttemptFails         scalar       1.3.6.1.2.1.6.7
tcpEstabResets          scalar       1.3.6.1.2.1.6.8
tcpCurrEstab            scalar       1.3.6.1.2.1.6.9
tcpInSegs               scalar       1.3.6.1.2.1.6.10
tcpOutSegs              scalar       1.3.6.1.2.1.6.11
tcpRetransSegs          scalar       1.3.6.1.2.1.6.12
tcpConnTable            table        1.3.6.1.2.1.6.13
tcpConnEntry            row          1.3.6.1.2.1.6.13.1
tcpConnState            column       1.3.6.1.2.1.6.13.1.1
tcpConnLocalAddress     column       1.3.6.1.2.1.6.13.1.2
tcpConnLocalPort        column       1.3.6.1.2.1.6.13.1.3
tcpConnRemAddress       column       1.3.6.1.2.1.6.13.1.4
tcpConnRemPort          column       1.3.6.1.2.1.6.13.1.5
tcpInErrs               scalar       1.3.6.1.2.1.6.14
tcpOutRsts              scalar       1.3.6.1.2.1.6.15
udp                     node         1.3.6.1.2.1.7
udpInDatagrams          scalar       1.3.6.1.2.1.7.1
udpNoPorts              scalar       1.3.6.1.2.1.7.2
udpInErrors             scalar       1.3.6.1.2.1.7.3
udpOutDatagrams         scalar       1.3.6.1.2.1.7.4
udpTable                table        1.3.6.1.2.1.7.5
udpEntry                row          1.3.6.1.2.1.7.5.1
udpLocalAddress         column       1.3.6.1.2.1.7.5.1.1
udpLocalPort            column       1.3.6.1.2.1.7.5.1.2
egp                     node         1.3.6.1.2.1.8
egpInMsgs               scalar       1.3.6.1.2.1.8.1
egpInErrors             scalar       1.3.6.1.2.1.8.2
egpOutMsgs              scalar       1.3.6.1.2.1.8.3
egpOutErrors            scalar       1.3.6.1.2.1.8.4
egpNeighTable           table        1.3.6.1.2.1.8.5
egpNeighEntry           row          1.3.6.1.2.1.8.5.1
egpNeighState           column       1.3.6.1.2.1.8.5.1.1
egpNeighAddr            column       1.3.6.1.2.1.8.5.1.2
egpNeighAs              column       1.3.6.1.2.1.8.5.1.3
egpNeighInMsgs          column       1.3.6.1.2.1.8.5.1.4
egpNeighInErrs          column       1.3.6.1.2.1.8.5.1.5
egpNeighOutMsgs         column       1.3.6.1.2.1.8.5.1.6
egpNeighOutErrs         column       1.3.6.1.2.1.8.5.1.7
egpNeighInErrMsgs       column       1.3.6.1.2.1.8.5.1.8
egpNeighOutErrMsgs      column       1.3.6.1.2.1.8.5.1.9
egpNeighStateUps        column       1.3.6.1.2.1.8.5.1.10
egpNeighStateDowns      column       1.3.6.1.2.1.8.5.1.11
egpNeighIntervalHello   column       1.3.6.1.2.1.8.5.1.12
egpNeighIntervalPoll    column       1.3.6.1.2.1.8.5.1.13
egpNeighMode            column       1.3.6.1.2.1.8.5.1.14
egpNeighEventTrigger    column       1.3.6.1.2.1.8.5.1.15
egpAs                   scalar       1.3.6.1.2.1.8.6
transmission            node         1.3.6.1.2.1.10
snmp                    node         1.3.6.1.2.1.11
snmpInPkts              scalar       1.3.6.1.2.1.11.1
snmpOutPkts             scalar       1.3.6.1.2.1.11.2
snmpInBadVersions       scalar       1.3.6.1.2.1.11.3
snmpInBadCommunityNames scalar       1.3.6.1.2.1.11.4
snmpInBadCommunityUses  scalar       1.3.6.1.2.1.11.5
snmpInASNParseErrs      scalar       1.3.6.1.2.1.11.6
snmpInTooBigs           scalar       1.3.6.1.2.1.11.8
snmpInNoSuchNames       scalar       1.3.6.1.2.1.11.9
snmpInBadValues         scalar       1.3.6.1.2.1.11.10
snmpInReadOnlys         scalar       1.3.6.1.2.1.11.11
snmpInGenErrs           scalar       1.3.6.1.2.1.11.12
snmpInTotalReqVars      scalar       1.3.6.1.2.1.11.13
snmpInTotalSetVars      scalar       1.3.6.1.2.1.11.14
snmpInGetRequests       scalar       1.3.6.1.2.1.11.15
snmpInGetNexts          scalar       1.3.6.1.2.1.11.16
snmpInSetRequests       scalar       1.3.6.1.2.1.11.17
snmpInGetResponses      scalar       1.3.6.1.2.1.11.18
snmpInTraps             scalar       1.3.6.1.2.1.11.19
snmpOutTooBigs          scalar       1.3.6.1.2.1.11.20
snmpOutNoSuchNames      scalar       1.3.6.1.2.1.11.21
snmpOutBadValues        scalar       1.3.6.1.2.1.11.22
snmpOutGenErrs          scalar       1.3.6.1.2.1.11.24
snmpOutGetRequests      scalar       1.3.6.1.2.1.11.25
snmpOutGetNexts         scalar       1.3.6.1.2.1.11.26
snmpOutSetRequests      scalar       1.3.6.1.2.1.11.27
snmpOutGetResponses     scalar       1.3.6.1.2.1.11.28
snmpOutTraps            scalar       1.3.6.1.2.1.11.29
snmpEnableAuthenTraps   scalar       1.3.6.1.2.1.11.30
© . All rights reserved.