⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fucntiongetrouterinfo.h

📁 一个windows系统下查看网络拓扑结构的程序
💻 H
字号:
#ifndef GETROUTERINFO
#define GETROUTERINFO
#include <afxtempl.h>
#include "SnmpTools.h"
#define WM_GETROUTERINFO (WM_USER+55)
//static CCriticalSection Section2;
struct InfoParament
{
	ULONG DestIP;
	char CommunityName[64];
	CWnd * MessageReceiver;
};
UINT GetInfoThreadFunc(LPVOID PParament)
{
	//Section2.Lock();
	InfoParament ThePar;
	memcpy(&ThePar,PParament,sizeof(InfoParament));
	InfoParament *P;
	P=(InfoParament *)PParament;
	delete P;
	SnmpTool TheTool(ThePar.DestIP,ThePar.CommunityName);
	int Length=32;
	ULONG IpTab[32],NetMaskTab[32],NextHopTab[32],Speed[32];
	if(TheTool.GetIpTable(IpTab,Length))
	{
		CString T;
		T.Format("本路由器共有IP地址%d个:",Length);
		for(int i=0;i<Length;i++)
		{
			T.Append(TheTool.NetIpToString(IpTab[i]));
			T.Append("   ");
		}
		ThePar.MessageReceiver->SendMessage(WM_GETROUTERINFO,(WPARAM)&T);
	}
	else
	{
		CString T;
		T.Format("无法获得IP地址");
		ThePar.MessageReceiver->SendMessage(WM_GETROUTERINFO,(WPARAM)&T);
	}
	Length=32;
	if(TheTool.GetNetMaskTable(NetMaskTab,Length))
	{
		CString T;
		T.Format("与之对应的子网掩码%d个:",Length);
		for(int i=0;i<Length;i++)
		{
			T.Append(TheTool.NetIpToString(NetMaskTab[i]));
			T.Append("   ");
		}
		ThePar.MessageReceiver->SendMessage(WM_GETROUTERINFO,(WPARAM)&T);
	}
	else
	{
		CString T;
		T.Format("无法获得子网掩码");
		ThePar.MessageReceiver->SendMessage(WM_GETROUTERINFO,(WPARAM)&T);
	}
	Length=32;
	if(TheTool.GetNextHopTable(NextHopTab,Length))
	{
		CString T;
		T.Format("本路由器共有%d个下一跳步地址:",Length);
		for(int i=0;i<Length;i++)
		{
			T.Append(TheTool.NetIpToString(NextHopTab[i]));
			T.Append("   ");
		}
		ThePar.MessageReceiver->SendMessage(WM_GETROUTERINFO,(WPARAM)&T);
	}
	else
	{
		CString T;
		T.Format("无法获得下一跳步地址");
		ThePar.MessageReceiver->SendMessage(WM_GETROUTERINFO,(WPARAM)&T);
	}
	Length=32;
	CString EthDep[32];
	if(TheTool.GetEnterfaceDescription(EthDep,Length))
	{
		CString T;
		T.Format("本路由器共有接口%d个:",Length);
		for(int i=0;i<Length;i++)
		{
			T.AppendFormat("%15s  ",EthDep[i].GetString());
		}

		ThePar.MessageReceiver->SendMessage(WM_GETROUTERINFO,(WPARAM)&T);
	}
	else
	{
		CString T;
		T.Format("无法获得接口信息");
		ThePar.MessageReceiver->SendMessage(WM_GETROUTERINFO,(WPARAM)&T);
	}
	
	Length=32;
	if(TheTool.GetEnterfaceSpeed(Speed,Length))
	{
		CString T;
		T.Format("接口速度分别为:");
		for(int i=0;i<Length;i++)
		{
			T.AppendFormat("%15d",Speed[i]);
		}
		ThePar.MessageReceiver->SendMessage(WM_GETROUTERINFO,(WPARAM)&T);
	}
	else
	{
		CString T;
		T.Format("无法获得接口速度");
		ThePar.MessageReceiver->SendMessage(WM_GETROUTERINFO,(WPARAM)&T);
	}
	CString T;
	T.Format("详细信息获得完毕");
	ThePar.MessageReceiver->SendMessage(WM_GETROUTERINFO,(WPARAM)&T);
//	Section2.Unlock();
	return 0;
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -