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

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

  介绍

 这个工具像Windows命令行工具arp.exe一样 显示 和修改IP/物理地址转表(ARP表).

  该工具将做两件事情:

  1)显示ARP表

  2)添加、删除、修改ARP表

  这两项工作通过SNMP(简单网络管理协议)扩展库来完成。

  通过SNMP处理IP和MAC地址

 你可以通过SNMP读取或修改ARP表,通过SNMP得到或设置对象 信息 。SNMP命令的请求与响应是依靠MIB(管理信息库)来完成的。

 MIB为树装结构,MIB拥有所有为我们所用的可管理 对象 ,更多的信息可以参考RFC1213(http://www.ietf.org/rfc/rfc1213.txt),

  也可以查看文件:%SystemRoot%system32*.mib,您可以用notepad.exe打开并查看%SystemRoot%system32mib_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"等等...

  下面是对象树的简单框图:

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

  类的初始化

  我们 使用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.exe -a,可以得到ARP条目,函数有三个参数:

  PTable指针指向arpTable结构数组,用于填充IP和MAC地址。

  TableLength是数组长度

  AdapterIndex是NIC适配器的编号。

  我使用3个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"比较,得到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表中不存在则添加进去,如果已经存在则被更新。

  删除条目,只需要提供NIC接口中的IP地址,MAC地址不需要提供。

  函数有四个参数:4字节的IPAddress,6字节的MACAddress,条目类型(2:删除,

  3:动态,4:静态)

  AdapterIndex:NIC适配器编号

  我使用4个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(全文完)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值