欢迎来到天天文库
浏览记录
ID:39467280
大小:97.00 KB
页数:13页
时间:2019-07-04
《ping使用说明和可以运行的源代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、如何使用自己写的ping运行Cmd进入命令提示符找到的路径然后是进之后zzbaidu.com举例:在d盘Cmd>d:>cd计算机网络ping程序>cddebug>zzbaidu.com就可以看到结果/*导入库文件*/#pragmacomment(lib,"ws2_32.lib")/*加载头文件*/#include#include#include#include#include/*定义常量*//*表示要记录路由*/#defineIP_RECORD_ROUTE0
2、x7/*默认数据报大小*/#defineDEF_PACKET_SIZE32/*最大的ICMP数据报大小*/#defineMAX_PACKET1024/*最大IP头长度*/#defineMAX_IP_HDR_SIZE60/*ICMP报文类型,回显请求*/#defineICMP_ECHO8/*ICMP报文类型,回显应答*/#defineICMP_ECHOREPLY0/*最小的ICMP数据报大小*/#defineICMP_MIN8/*自定义函数原型*/voidInitPing();voidUserHelp();voidGetArgments(intargc,cha
3、r**argv);USHORTCheckSum(USHORT*buffer,intsize);voidFillICMPData(char*icmp_data,intdatasize);voidFreeRes();voidDecodeIPOptions(char*buf,intbytes);voidDecodeICMPHeader(char*buf,intbytes,SOCKADDR_IN*from);voidPingTest(inttimeout);/*IP报头字段数据结构*/typedefstruct_iphdr{unsignedinth_len:4;/*
4、IP报头长度*/unsignedintversion:4;/*IP的版本号*/unsignedchartos;/*服务的类型*/unsignedshorttotal_len;/*数据报总长度*/unsignedshortident;/*惟一的标识符*/unsignedshortfrag_flags;/*分段标志*/unsignedcharttl;/*生存期*/unsignedcharproto;/*协议类型(TCP、UDP等)*/unsignedshortchecksum;/*校验和*/unsignedintsourceIP;/*源IP地址*/unsigne
5、dintdestIP;/*目的IP地址*/}IpHeader;/*ICMP报头字段数据结构*/typedefstruct_icmphdr{BYTEi_type;/*ICMP报文类型*/BYTEi_code;/*该类型中的代码号*/USHORTi_cksum;/*校验和*/USHORTi_id;/*惟一的标识符*/USHORTi_seq;/*序列号*/ULONGtimestamp;/*时间戳*/}IcmpHeader;/*IP选项头字段数据结构*/typedefstruct_ipoptionhdr{unsignedcharcode;/*选项类型*/unsign
6、edcharlen;/*选项头长度*/unsignedcharptr;/*地址偏移长度*/unsignedlongaddr[9];/*记录的IP地址列表*/}IpOptionHeader;/*定义全局变量*/SOCKETm_socket;IpOptionHeaderIpOption;SOCKADDR_INDestAddr;SOCKADDR_INSourceAddr;char*icmp_data;char*recvbuf;USHORTseq_no;char*lpdest;intdatasize;BOOLRecordFlag;doublePacketNum;BO
7、OLSucessFlag;/*初始化变量函数*/voidInitPing(){WSADATAwsaData;icmp_data=NULL;seq_no=0;recvbuf=NULL;RecordFlag=FALSE;lpdest=NULL;datasize=DEF_PACKET_SIZE;PacketNum=5;SucessFlag=FALSE;/*Winsock初始化*/if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0){/*如果初始化不成功则报错,GetLastError()返回发生的错误信息*/printf("WSASt
8、artup()failed:%d",GetLas
此文档下载收益归作者所有