ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:29.50KB ,
资源ID:13267826      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13267826.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(网络ping源代码注有详细注释Word文档下载推荐.doc)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

网络ping源代码注有详细注释Word文档下载推荐.doc

1、#define MAX_IP_HDR_SIZE 60 typedef struct iphdr unsigned int h_len:4; /4位首部长度 unsigned int version: /IP版本号,4表示IPV4 unsigned char tos; /8位服务类型TOS unsigned short total_len; /16位总长度(字节) unsigned short ident; /16位标识 unsigned short frag_and_flags; /3位标志位 unsigned char ttl; /8位生存时间 TTL unsigned char proto

2、; /8位协议 (TCP, UDP 或其他) unsigned short checksum; /16位IP首部校验和 unsigned int sourceIP; /32位源IP地址 unsigned int destIP; /32位目的IP地址IpHeader; / 定义ICMP首位 /*/主程序入口*/typedef struct _ihdr BYTE i_type; /8位类型 BYTE i_code; /8位代码 USHORT i_cksum; /16位校验和 USHORT i_id; /识别号(一般用进程号作为识别号) USHORT i_seq; /报文序列号 ULONG time

3、stamp; /时间戳IcmpHeader;#define STATUS_FAILED 0xFFFF #define DEF_PACKET_SIZE 32 /包的大小#define MAX_PACKET 1024 /最大ICMP包长度#define xmalloc(s) HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,(s) #define xfree(p) HeapFree (GetProcessHeap(),0,(p) void fill_icmp_data(char *, int); /填补数据USHORT checksum(USHORT *, i

4、nt); /校验数据void decode_resp(char *,int ,struct sockaddr_in *);void Usage(char *progname) fprintf(stderr, Usage:n ); /传送格式化数据 fprintf(stderr, %s data_sizen ,progname);datasize can be up to 1Kbn ExitProcess(STATUS_FAILED); int main(int argc,char *argv) /初始化套接字WSADATA wsaData; SOCKET sockRaw; struct soc

5、kaddr_in dest,from; struct hostent *hp; int bread,datasize; /定义 bread,datasize int fromlen = sizeof(from); int timeout = 1000; /等待每次回复的超时时间,默认1秒 char *dest_ip; /发送IP地址 char *icmp_data; char *recvbuf; unsigned int addr=0; /初始化地址 USHORT seq_no = 0; /序列号初始化if(WSAStartup(MAKEWORD(2,1),&wsaData) != 0) /初

6、始化函数fprintf(stderr, WSAStartup failed: %dn ,GetLastError(); /设置显示 ExitProcess(STATUS_FAILED); /退出 if(argc h_addr,hp- h_length); elsedest.sin_addr.s_addr = addr; /给目标地址 if(hp)dest.sin_family = hp- h_addrtype; /目标地址赋值dest.sin_family = AF_INET; /目标地址赋值 dest_ip = inet_ntoa(dest.sin_addr); /传送IP地址 if(arg

7、c2) /判断argc是否大于2datasize = atoi(argv2); if(datasize = 0) /判断 datasizedatasize = DEF_PACKET_SIZE; /赋值datasize = DEF_PACKET_SIZE;datasize += sizeof(IcmpHeader);icmp_data =(char *) malloc(MAX_PACKET); /调用最大内存 char型强制转换recvbuf =(char *) malloc(MAX_PACKET);if(!icmp_data) /检查指针是否有效HeapAlloc failed %dn Exi

8、tProcess(STATUS_FAILED); memset(icmp_data,0,MAX_PACKET); fill_icmp_data(icmp_data,datasize); while(1) /ICMP 打包int bwrote; /定义bwrote(IcmpHeader*)icmp_data)- i_cksum = 0; /校验盒 (IcmpHeader*)icmp_data)- timestamp = GetTickCount(); /时间戳 i_seq = seq_no+; /序列号 i_cksum = checksum(USHORT*)icmp_data, datasize); /校验盒bwrote = sendto(sockRaw,icmp_data,datasize,0,(struct sockaddr*)&dest, sizeof(dest); / 发送 if(bwrote = SOCKET_ERROR) /判断发送是不是失败了 if (WSAGetLastError() = WSAETIMEDOUT) /判断失败的是不是WSAETIMEDOUTprintf( timed outn /输出 timed outn continue

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1