资源简介
网络应用课程设计的发现网络中的活动主机C++版 其中有运行文件+源码+实验报告+答辩PPT
代码片段和文件信息
#pragma pack(4)
//#include “stdafx.h“
#pragma comment (lib“Ws2_32.lib“)
#define WIN32_LEAN_AND_MEAN
#include
#include
#include
#include
#include
#include
#include
typedef struct iphdr
{
unsigned int headlen:4;
unsigned int version:4;
unsigned char tos;
unsigned short totallen;
unsigned short id;
unsigned short falg;
unsigned char ttl;
unsigned char prot;
unsigned short checksum;
unsigned int sourceIP;
unsigned int destIP;
}IpHeader;
typedef struct icmphdr
{
BYTE type;
BYTE code;
USHORT checksum;
USHORT id;
USHORT seg;
}IcmpHeader;
#define ICMP_RCHO 8
#define ICMP_RCHO_REPLY 0
#define ICMP_MIN 8
#define STATUS_FAILED 0xFFFF
#define DEF_PACKET_SIZE 32
#define MAX_PACKET 1024
#define MAX_PING_PACKET_SIZE (MAX_PACKET+sizeof(IpHeader))
void fill_icmp_data(char *int);
USHORT checksum(USHORT *int);
void decode_resp(char *intstruct sockaddr_in *);
DWORD WINAPI FindIP(LPVOID pIPAddrTemp);
WSADATA wsaData;
SOCKET sockRaw;
struct sockaddr_in destfromend;
int fromlen =sizeof(from);
char *recvbuf=new char[MAX_PING_PACKET_SIZE];
unsigned int addr=0;
long ThreadNumCounter=0ThreadNumLimit=20;
long *aa=&ThreadNumCounter;
void main(int argcchar *argv[])
{
/*if(argc!=3)
{
cout<<“输入格式错误: start_ip end_ip“< return;
}*/
if(WSAStartup(MAKEWORD(21)&wsaData)!=0)
{
cout<<“WASStartup failed“< ExitProcess(STATUS_FAILED);
}
sockRaw=WSASocket(AF_INETSOCK_RAWIPPROTO_ICMPNULL0WSA_FLAG_OVERLAPPED);
if(sockRaw==INVALID_SOCKET)
{
cout<<“WASSocketet() falied“< ExitProcess(STATUS_FAILED);
}
int timeout=1000;
int bread=setsockopt(sockRawSOL_SOCKETSO_RCVTIMEO(char *)&timeoutsizeof(timeout));
if(bread==SOCKET_ERROR)
{
cout<<“FAILED TO SEY RECV TIMEOUT“< ExitProcess(STATUS_FAILED);
}
timeout=1000;
bread=setsockopt(sockRawSOL_SOCKETSO_SNDTIMEO(char *)&timeoutsizeof(timeout));
if(bread==SOCKET_ERROR)
{
cout<<“FAILED TO SEY RECV TIMEOUT“< ExitProcess(STATUS_FAILED);
}
memset(&dest0sizeof(dest));
unsigned long startIPendIP;
dest.sin_family=AF_INET;
dest.sin_addr.s_addr=inet_addr(argv[1]);
startIP=inet_addr(argv[1]);
end.sin_family=AF_INET;
end.sin_addr.s_addr=inet_addr(argv[2]);
endIP=inet_addr(argv[2]);
HANDLE hThread;
while(htonl(startIP)<=htonl(endIP))
{
if(ThreadNumCounter>ThreadNumLimit)
{
Sleep(5000);
continue;
}
DWORD ThreadID;
sockaddr_in *pIPAddrTemp=new (sockaddr_in);
if(!pIPAddrTemp)
{
cout<<“memory alloc failed“< return ;
}
*pIPAddrTemp=dest;
clock_t start;
start=clock();
hThread=CreateThread(NULLNULLFindIP(LPVOID)pIPAddrTempNULL&ThreadID);
long i=60000000L;
while(i--);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 208947 2012-05-31 10:19 发现网络中的活动主机\sendhost\Debug\sendhost.exe
文件 246132 2012-05-31 10:19 发现网络中的活动主机\sendhost\Debug\sendhost.ilk
文件 21427 2012-05-31 10:19 发现网络中的活动主机\sendhost\Debug\sendhost.obj
文件 2011816 2012-05-31 10:19 发现网络中的活动主机\sendhost\Debug\sendhost.pch
文件 418816 2012-05-31 10:19 发现网络中的活动主机\sendhost\Debug\sendhost.pdb
文件 99328 2012-05-31 10:19 发现网络中的活动主机\sendhost\Debug\vc60.idb
文件 69632 2012-05-31 10:19 发现网络中的活动主机\sendhost\Debug\vc60.pdb
文件 5826 2012-05-31 10:20 发现网络中的活动主机\sendhost\sendhost.cpp
文件 4308 2012-05-31 10:20 发现网络中的活动主机\sendhost\sendhost.dsp
文件 524 2012-05-31 10:19 发现网络中的活动主机\sendhost\sendhost.dsw
文件 33792 2012-05-31 10:20 发现网络中的活动主机\sendhost\sendhost.ncb
文件 48640 2012-05-31 10:20 发现网络中的活动主机\sendhost\sendhost.opt
文件 898 2012-05-31 10:19 发现网络中的活动主机\sendhost\sendhost.plg
文件 8957 2012-05-31 10:30 发现网络中的活动主机\wangluo.png
文件 181248 2012-05-31 10:16 发现网络中的活动主机\实验.ppt
文件 144506 2012-05-31 13:45 发现网络中的活动主机\实验报告.doc
目录 0 2012-05-31 13:47 发现网络中的活动主机\sendhost\Debug
目录 0 2012-05-31 13:47 发现网络中的活动主机\sendhost
目录 0 2012-05-31 13:47 发现网络中的活动主机\VC6.0运行出来的文件
目录 0 2012-05-31 13:48 发现网络中的活动主机
----------- --------- ---------- ----- ----
3504797 20
- 上一篇:C语言实战-学生成绩管理系统
- 下一篇:计算N阶乘n>20)用链表形式
相关资源
- 货品的进销存管理系统,MFC编译
- VC++磁盘MBR读写程序,测试通过
- NSGA2源代码,C++源代码
- C++的库函数
- C++矩阵变换
- windows下C++实现的HTTP web 服务器
- 基于C/C++基础的物品竞拍系统
- 图像点运算VC++程序
- VB、C++机房管理程序
- Tamura texture C++
- OpenGL 真实感图形编程C++实现
- 仓库管理系统分别通过数据库实现和
- C++ TEST 6.0 破解
- 《数据结构——C++实现》第二版课本
- 哈夫曼树 C++算法
- tcp socket实现单进程单线程 高并发服务
- 八数码的深度优先算法c++实现
- C++实现灰度图像的边缘检测、提取及
- 摄影测量直接线性变换DLTVC++程序代码
- 用VC++6.0开发监控界面的方法
- 用Visual C++仿真实现卡尔曼滤波
- libstdc++.so.6.0.17
- c++写的操作系统课程设计:模拟文件
- C++编写的航空客运订票系统
- MFC 界面编程13个
- MFC入门教程:1天深入浅出MFC
- listing_4.1.cpp
- 摄影测量空间后方交会程序合集,含
- 进程调度的设计与实现代码C++
- window平台下c++ 对zip压缩解压缩工程源
评论
共有 条评论