- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机网络课程设计代码程序
六、程序代码
● 文件scanhost.h
#pragma pack(4)
#pragma comment (lib,”Ws2_32.lib”)
#define WIN32_LEAN_AND_MEAN
#include winsock2.h
#include stdio.h
#include stdlib.h
#include iostream.h
#include stdio.h
#include sys/timeb.h
#include time.h
/* The IP header */
Typedef struct iphdr {
unsigned int headlen:4; //IP头长度
unsigned int version:4; //IP版本号
unsigned char tos; //服务类型
unsigned short totallen; //IP包总长度
unsigned short id; //ID号
unsigned short flag; //标记
unsigned char ttl; //生存时间
unsigned char prot; //协议(UDP TCP)
unsigned short checksum; //校验和
unsigned int sourceIP; //源IP
unsigned int destIP; //目的IP
}IpHeader;
//ICMP header
Typedef struct icmphdr {
BYTE type; //ICMP类型码,回送请求的类型码为8
BYTE code; //子类型码,保存与特定ICMP报文类型相关的细节信息
USHORT checksum; //校验和
USHORT id; //ICMP报文ID号
USHORT seq; //ICMP数据报的序列号
}IcmpHeader;
#define ICMP_ECHO 8 //请求回送
#define ICMP_ECHO_REPLY 0 //请求回应
#define ICMP_MIN 8 //ICMP包头长度(最小ICMP包长度)
#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); //填充ICMP包
USHORT checksum(USHORT *,int); //校验和函数
void decode_resp(char *,int,struct sockaddr_in *); //找到此数据报IP地址
DWORD WINAPI FindIP(LPVOID pIPAddrTemp); //线程调用子函数
文件:scanhost.cpp
#include “scanhost.h”
WSADATA wsaData; //原始套接字
SOCKET sockRaw; //dest:有哪些信誉好的足球投注网站目的IP,from:接收ICMP包的源IP
Struct sockaddr_in dest,from,end; //end:有哪些信誉好的足球投注网站终止IP,即输入第三个参数
int fromlen = sizeof(from); //接收ICMP包长度
char *recvbuf=new char[MAX_PING_PACKET_SIZE]; //接受ICMP包缓冲区
unsigned int addr=0; //IP地址
long ThreadNumCounter=0,ThreadNumLimit
文档评论(0)