计算机网络课程设计(第七章)解析IP数据包(完整程序代码)课案.docx

计算机网络课程设计(第七章)解析IP数据包(完整程序代码)课案.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机网络课程设计(第七章)解析IP数据包(完整程序代码)课案

计算机网络课程设计——机械工业出版社第7章:解析IP数据包课程设计目的:本课程设计的目的就是设计一个解析IP数据包的程序,并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从而对IP层的工作原理有更好的理解和认识。完整程序代码:#includestdio.h#includewinsock2.h#includews2tcpip.h#pragma comment(lib,ws2_32.lib)typedefstruct _IP_HEADER {union{BYTE Version;BYTE HdrLen;};BYTE ServiceType;WORD TotalLen;WORD ID;union{WORD Flags;WORD FragOff;};BYTE TimeToLive;BYTE Protocol;WORD HdrChksum;DWORD SrcAddr;DWORD DstAddr;BYTE Options; } IP_HEADER;#define IO_RCVALL _WSAIOW(IOC_VENDOR,1)#define BUFFER_SIZE 65535void getVersion(BYTE b,BYTE version){version=b4;} void getIHL(BYTE b,BYTE length){length=(b0x0f)*4;}char* parseServiceType_getProcedence(BYTE b){switch(b5){case 7: return Network Control;break;case 6:return internet work Control;break;case 5:return CRITIC/ECP;break;case 4:return Flash Override;break;case 3:return Flash;break;case 2:return Immediate;break;case 1:return Priority;break;case 0:return Routine;break;default:return Unknown;}}char* parseServiceType_getTOS(BYTEb){b=(b1)0x0f;switch(b){case 0:return Normal Service;break;case 1:return Minimize monetary cost;break;case 2:return Maximize reliability;break;case 4:return Maximize throughput;break;case 8:return Minimize delay;break;case 15:return Maximize security;break;default:return Unknown;}}void getFlags(WORD w,BYTE DF,BYTE MF){DF=(w14)0x01;MF=(w13)0x01;}void getFragOff(WORD w,WORD fragOff){fragOff=w0x1fff;}char* getProtocol(BYTE Protocol){switch (Protocol){case 1:return ICMP;case 2:return IGMP;case 4:return IP in IP;case 6:return TCP;case 8:return EGP;case 17:return UDP;case 41:return IPv6;case 46:return RSVP;case 89:return OSPF;default:return UNKNOWN;}}void ipparse(FILE* file,char* buffer){IP_HEADER ip=*(IP_HEADER*)buffer;fseek(file,0,SEEK_END);fprintf(file,----------------------------------\n);BYTE version;getVersion(ip.Version,version);fprintf(file,Version:%d\n,version);BYTE headerLen;getIHL(ip.HdrLen,headerLen);fprintf(file,HdrLen:%d(Bytes)\n,headerLen);fprintf(file,ServiceType: %s,%s\n,parseServiceType_getP

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档