www.pudn.com > SNMPApp.rar > MIB.h


#if !defined(AFX_MIB_H__48F4CDE8_5A8B_4B2C_8824_EE413883AD29__INCLUDED_) 
#define AFX_MIB_H__48F4CDE8_5A8B_4B2C_8824_EE413883AD29__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
// MIB.h : header file 
 
#include "stdafx.h" 
#include "winsnmp.h" 
#include "snmp.h" 
 
class CipRouteTable; 
class CipRouteTableEntry; 
class CipAddrTable; 
class CipAddrTableEntry; 
class CifTable; 
class CifTableEntry; 
class CSystem; 
 
class CipRouteTable 
{ 
public: 
	CObArray m_ipRouteTableEntries; //CipRouteTableEntry 
}; 
 
class CipRouteTableEntry : public CObject 
{ 
public: 
	CString ipRouteDst; 
	int ipRouteIfIndex; 
//	int ipRouteMetric1; 
//	int ipRouteMetric2; 
//	int ipRouteMetric3; 
//	int ipRouteMetric4; 
	CString ipRouteNextHop; 
//	int ipRouteType; 
//	int ipRouteProto; 
//	int ipRouteAge; 
//	int ipRouteMask; 
//	int ipRouteMetric5; 
//	int ipRouteInfo; 
}; 
 
class CipAddrTable 
{ 
public: 
	CObArray m_ipAddrTableEntries;//CipAddrTableEntry 
}; 
 
class CipAddrTableEntry : public CObject 
{ 
public: 
	CString ipAdEntAddr; 
	int ipAdEntIfIndex; 
	CString ipAdEntNetMask; 
//	int ipAdEntReasmMaxSize; 
//	int ipAdEntBcastAddr; 
}; 
 
class CifTable 
{ 
public: 
	int ifNumber; 
	CObArray m_ifTableEntries;//CifTableEntry 
}; 
 
class CifTableEntry : public CObject 
{ 
public: 
	int ifIndex; 
	CString ifDescr; 
	int ifType; 
//	int ifMtu; 
//	int ifSpeed; 
	CString ifPhysAddress; 
//	int ifAdminStatus; 
//	int ifOpenStatus; 
//	int ifLastChange; 
//	int ifInOctects; 
}; 
 
class CSystem : public CObject 
{ 
public: 
	CString sysDescr; 
	int sysObjectID; 
	CString sysName; 
 
//	int sysUpTime; 
//	int sysContact; 
//	int sysLocation; 
//	int sysServices; 
}; 
 
class CRouter : public CObject 
{ 
public: 
	CRouter(); 
	virtual ~CRouter(); 
 
public: 
	BOOL GetSystem(CSnmp* psnmp); 
	BOOL GetRouterInfo(CSnmp* psnmp); 
	void GetifTable(CSnmp* psnmp); 
	void GetipAddrTable(CSnmp* psnmp); 
	void GetipRouteTable(CSnmp* psnmp);	 
 
private: 
	int RecvInIfTable(); 
	int RecvInIpAddrTable(); 
	int RecvInSystem(); 
 
public: 
	void PrintRouterInfo(); 
	BOOL GetTableCol(CString& nStr,CString& fStr,CSnmp* psnmp); 
	CipRouteTable m_ipRouteTable;//路由表信息 
	CipAddrTable m_ipAddrTable;//ip地址表 
	CifTable m_ifTable;//接口表 
	CSystem m_sys;//路由的系统信息 
	//本路由器的ip地址,可能有多个,我们只需要一个 
	CString m_ipAddr; 
 
private: 
	CSnmp *m_psnmp;//保存CSnmp对象,用来构建请求信息 
 
private: 
//	int currRow;//当查询表时用来表示当前请求行以便构造请求Oid 
	CString m_CurrOid[10];//存放当前的请求Oid,根据模板和当前行生成 
//	CString m_TempleOid[10];//当前的请求Oid模板。 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_MIB_H__48F4CDE8_5A8B_4B2C_8824_EE413883AD29__INCLUDED_)