资源简介
本程序可以探测网络上某特定路由器的相邻路由器连接拓扑图,并在用户界面是一图状结构显示;同时提供显示路由器详细信息,获得路由器所在子网全部主机信息等相关功能。
代码片段和文件信息
#include “stdafx.h“
#include “APCPingFunction.h“
#pragma comment (lib“ws2_32“)
void ApcFunc(void *i)
{
IcmpThreadStruct* PIcmpThreadStruct=((ApcParament*)i)->PIcmpThreadStruct;
if(*PIcmpThreadStruct->Stop==false)
{
ICMP_ECHO_REPLY* P_Icmp_Echo_Option=(ICMP_ECHO_REPLY*)i;
ULONG DestIP=(ULONG)P_Icmp_Echo_Option->Address;
hostent *HostInfo=NULL;
if(P_Icmp_Echo_Option->RoundTripTime<100000)
{
sprintf((char*)PIcmpThreadStruct->Buffer“host Address: %-15s; Time Spend: %d ms\r\n“NetIpToString((ULONG)P_Icmp_Echo_Option->Address)P_Icmp_Echo_Option->RoundTripTime);
}
else
{
sprintf((char*)PIcmpThreadStruct->Buffer“host Address: %-15s; Time Out\r\n“NetIpToString((ULONG)P_Icmp_Echo_Option->Address));
}
PIcmpThreadStruct->MessageHandler->SendMessage(WM_PINGPIcmpThreadStruct->wpPIcmpThreadStruct->lp);
}
}
int SearchTheLan(ULONG DestIPULONG NetMaskIcmpThreadStruct* PIcmpThreadStruct)
{
PIcmpThreadStruct->ApcRoutine=(FARPROC)&ApcFunc;
WSADATA tmp;
if(WSAStartup(MAKEWORD(21)&tmp)!=0)
{
return -1;
}
HMODULE hInst=LoadLibrary(“iphlpapi.dll“);
if(!hInst)
{
return -1;
}
//依次获得所需的三个函数指针
PIcmpThreadStruct->IcmpCreateFile=(PIcmpCreateFile)GetProcAddress(hInst“IcmpCreateFile“);
PIcmpThreadStruct->IcmpSendEcho2=(PIcmpSendEcho2)GetProcAddress(hInst“IcmpSendEcho2“);
PIcmpThreadStruct->IcmpCloseHandle=(PIcmpCloseHandle)GetProcAddress(hInst“IcmpCloseHandle“);
if(PIcmpThreadStruct->IcmpCreateFile==NULL||PIcmpThreadStruct->IcmpSendEcho2==NULL||PIcmpThreadStruct->IcmpCloseHandle==NULL)
{
return -1;
}
HANDLE IcmpHandle=0;
IcmpHandle=PIcmpThreadStruct->IcmpCreateFile();//打开ICMP句柄
if(IcmpHandle==0)
{
return -1;
}
else
{
IP_OPTION_INFORMATION IpOption;//该结构用来控制所发ICMP数据包的IP头的相应字段值
IpOption.Flags=0;
IpOption.OptionsData=NULL;
IpOption.OptionsSize=0;
IpOption.Tos=0;
IpOption.Ttl=123;
char *SendData = “DF is the best!“;
ApcParament *ReplyBuffer=new ApcParament[~ntohl(NetMask)];
ULONG DestAddress=ntohl(NetMask&DestIP);
int NumberOfIP=((~(ntohl(NetMask)))-1);
for(int i=0;i {
ReplyBuffer[i].PIcmpThreadStruct=PIcmpThreadStruct;
DestAddress++;
int Res=0;
Res=PIcmpThreadStruct->IcmpSendEcho2(IcmpHandleNULLPIcmpThreadStruct->ApcRoutine(void*)(&ReplyBuffer[i])htonl(DestAddress)SendData(WORD)strlen(SendData)&IpOptionReplyBuffer[i].Buffer51235000);
SleepEx(1true);
if(*PIcmpThreadStruct->Stop)
{
break;
}
}//end of while
}
while((*PIcmpThreadStruct->Stop)==false&&SleepEx(5000true)==WAIT_IO_COMPLETION );
PIcmpThreadStruct->IcmpCloseHandle(IcmpHandle);
WSACleanup();
if(*PIcmpThreadStruct->Stop!=true)
{
PIcmpThreadStruct->MessageHandler->SendMessage(WM_PING_FINISHPIcmpThreadStruct->wpPIcmpThreadStruct->lp);
}
return 0;
}
UINT MyPingProc( LPVOID pParam )
{
IcmpThreadStruct* PIcmpThreadStruct=new IcmpThreadStruct;
IcmpThre
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3467 2006-12-27 16:00 路由器拓扑发现程序\Code\APCPingFunction.cpp
文件 1321 2006-12-19 16:00 路由器拓扑发现程序\Code\APCPingFunction.h
文件 1172 2006-12-04 16:00 路由器拓扑发现程序\Code\DataSupport.h
文件 6180 2006-12-04 16:00 路由器拓扑发现程序\Code\ExplorerThread.cpp
文件 729 2006-12-19 16:00 路由器拓扑发现程序\Code\ExplorerThread.h
文件 320 2006-12-04 16:00 路由器拓扑发现程序\Code\FucntionGetRouterInfo.h
文件 2669 2006-12-19 16:00 路由器拓扑发现程序\Code\FunctionGetRouterInfo.cpp
文件 3484 2006-12-27 16:00 路由器拓扑发现程序\Code\LeftView.cpp
文件 1901 2005-12-21 16:00 路由器拓扑发现程序\Code\LeftView.h
文件 2687 2005-12-20 16:00 路由器拓扑发现程序\Code\MainFrm.cpp
文件 875 2005-12-18 16:00 路由器拓扑发现程序\Code\MainFrm.h
文件 147080 2006-12-19 16:00 路由器拓扑发现程序\Code\NetExplorer.aps
文件 3781 2005-12-19 16:00 路由器拓扑发现程序\Code\NetExplorer.cpp
文件 500 2005-12-19 16:00 路由器拓扑发现程序\Code\NetExplorer.h
文件 855040 2007-05-08 23:29 路由器拓扑发现程序\Code\NetExplorer.ncb
文件 911 2005-10-20 16:00 路由器拓扑发现程序\Code\NetExplorer.sln
文件 8192 2007-05-08 23:29 路由器拓扑发现程序\Code\NetExplorer.suo
文件 6962 2006-12-19 16:00 路由器拓扑发现程序\Code\NetExplorer.vcproj
文件 1213 2005-12-19 16:00 路由器拓扑发现程序\Code\NetExplorerDoc.cpp
文件 962 2006-12-19 16:00 路由器拓扑发现程序\Code\NetExplorerDoc.h
文件 12346 2006-12-27 16:00 路由器拓扑发现程序\Code\NetExplorerView.cpp
文件 1781 2006-12-19 16:00 路由器拓扑发现程序\Code\NetExplorerView.h
文件 1466 2005-12-20 16:00 路由器拓扑发现程序\Code\PropertyDialog.cpp
文件 646 2005-10-27 16:00 路由器拓扑发现程序\Code\PropertyDialog.h
文件 3319 2005-10-20 16:00 路由器拓扑发现程序\Code\ReadMe.txt
文件 869 2005-10-29 16:00 路由器拓扑发现程序\Code\ReExplorerDialog.cpp
文件 462 2005-10-29 16:00 路由器拓扑发现程序\Code\ReExplorerDialog.h
文件 2250 2006-12-19 16:00 路由器拓扑发现程序\Code\resource.h
文件 3762 2006-12-19 16:00 路由器拓扑发现程序\Code\ResultOfPingDlg.cpp
文件 1162 2006-12-19 16:00 路由器拓扑发现程序\Code\ResultOfPingDlg.h
............此处省略17个文件信息
- 上一篇:基于swing的简单聊天器(兼传输文件)
- 下一篇:血液图像处理—细胞识别
相关资源
- 清华大学郑莉C 语言程序设计课件
- ping 程序 C语言
- 操作系统实验综合设计【附代码】
- VC 编程实现活动主机扫描源代码
- vc 编写的基于TCP协议的客户/服务器
- 树状导航菜单的制作
- VC工程转Qt工程文件的工具
- 二进制方式打包和解包文件
- vc写的一个游戏里面三维场景漫游
- 学生成绩档案管理系统—保证可用
- 快递单邮政编码识别系统的实现
- 学生信息管理系统,非常详细
- 人脸识别系统设计-毕业设计
- 广工信工图像处理作业
- opengl 实现的机器人行走
- OpenGL 超酷三维动画DEMO
- de2开发板上的万年历
- jsoncpp-src-0.6.0-rc2
- 随机生成大素数
- VC上用的曲线控件多个
- VC++开发的仓库管理系统设计文档和
- 两个吃一个棋类游戏
- vc实现向指定ip端口发送数据或文件,
- 运用定时器函数制作计时器
- 宿舍管理系统源代码+论文 有图形界面
- 串口调试助手 vc 源代码
- 欧姆龙PLC以太网通讯在线调试过OK
-
ob
jectARX自定义实体简单 - 由三点三维坐标计算圆半径和圆心位
- 人脸识别系统-毕业设计
评论
共有 条评论