📄 fucntiongetrouterinfo.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 + -