MIB.h
上传用户:yfy060102
上传日期:2021-05-22
资源大小:60k
文件大小:3k
源码类别:

SNMP编程

开发平台:

Visual C++

  1. #if !defined(AFX_MIB_H__48F4CDE8_5A8B_4B2C_8824_EE413883AD29__INCLUDED_)
  2. #define AFX_MIB_H__48F4CDE8_5A8B_4B2C_8824_EE413883AD29__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // MIB.h : header file
  7. #include "stdafx.h"
  8. #include "winsnmp.h"
  9. #include "snmp.h"
  10. class CipRouteTable;
  11. class CipRouteTableEntry;
  12. class CipAddrTable;
  13. class CipAddrTableEntry;
  14. class CifTable;
  15. class CifTableEntry;
  16. class CSystem;
  17. class CipRouteTable
  18. {
  19. public:
  20. CObArray m_ipRouteTableEntries; //CipRouteTableEntry
  21. };
  22. class CipRouteTableEntry : public CObject
  23. {
  24. public:
  25. CString ipRouteDst;
  26. int ipRouteIfIndex;
  27. // int ipRouteMetric1;
  28. // int ipRouteMetric2;
  29. // int ipRouteMetric3;
  30. // int ipRouteMetric4;
  31. CString ipRouteNextHop;
  32. // int ipRouteType;
  33. // int ipRouteProto;
  34. // int ipRouteAge;
  35. // int ipRouteMask;
  36. // int ipRouteMetric5;
  37. // int ipRouteInfo;
  38. };
  39. class CipAddrTable
  40. {
  41. public:
  42. CObArray m_ipAddrTableEntries;//CipAddrTableEntry
  43. };
  44. class CipAddrTableEntry : public CObject
  45. {
  46. public:
  47. CString ipAdEntAddr;
  48. int ipAdEntIfIndex;
  49. CString ipAdEntNetMask;
  50. // int ipAdEntReasmMaxSize;
  51. // int ipAdEntBcastAddr;
  52. };
  53. class CifTable
  54. {
  55. public:
  56. int ifNumber;
  57. CObArray m_ifTableEntries;//CifTableEntry
  58. };
  59. class CifTableEntry : public CObject
  60. {
  61. public:
  62. int ifIndex;
  63. CString ifDescr;
  64. int ifType;
  65. // int ifMtu;
  66. // int ifSpeed;
  67. CString ifPhysAddress;
  68. // int ifAdminStatus;
  69. // int ifOpenStatus;
  70. // int ifLastChange;
  71. // int ifInOctects;
  72. };
  73. class CSystem : public CObject
  74. {
  75. public:
  76. CString sysDescr;
  77. int sysObjectID;
  78. CString sysName;
  79. // int sysUpTime;
  80. // int sysContact;
  81. // int sysLocation;
  82. // int sysServices;
  83. };
  84. class CRouter : public CObject
  85. {
  86. public:
  87. CRouter();
  88. virtual ~CRouter();
  89. public:
  90. BOOL GetSystem(CSnmp* psnmp);
  91. BOOL GetRouterInfo(CSnmp* psnmp);
  92. void GetifTable(CSnmp* psnmp);
  93. void GetipAddrTable(CSnmp* psnmp);
  94. void GetipRouteTable(CSnmp* psnmp);
  95. private:
  96. int RecvInIfTable();
  97. int RecvInIpAddrTable();
  98. int RecvInSystem();
  99. public:
  100. void PrintRouterInfo();
  101. BOOL GetTableCol(CString& nStr,CString& fStr,CSnmp* psnmp);
  102. CipRouteTable m_ipRouteTable;//路由表信息
  103. CipAddrTable m_ipAddrTable;//ip地址表
  104. CifTable m_ifTable;//接口表
  105. CSystem m_sys;//路由的系统信息
  106. //本路由器的ip地址,可能有多个,我们只需要一个
  107. CString m_ipAddr;
  108. private:
  109. CSnmp *m_psnmp;//保存CSnmp对象,用来构建请求信息
  110. private:
  111. // int currRow;//当查询表时用来表示当前请求行以便构造请求Oid
  112. CString m_CurrOid[10];//存放当前的请求Oid,根据模板和当前行生成
  113. // CString m_TempleOid[10];//当前的请求Oid模板。
  114. };
  115. /////////////////////////////////////////////////////////////////////////////
  116. //{{AFX_INSERT_LOCATION}}
  117. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  118. #endif // !defined(AFX_MIB_H__48F4CDE8_5A8B_4B2C_8824_EE413883AD29__INCLUDED_)