欢迎来到天天文库
浏览记录
ID:53118250
大小:40.50 KB
页数:7页
时间:2020-04-01
《IP数据包解析代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.#include#include#include#include#pragmacomment(lib,"Ws2_32.lib")#defineBUFFER_SIZE65535#defineFRAGMENT_SIZE10000//分片数据部分最长为10000#defineFRAGMENT_NUM7#defineSTART20#defineIO_RCVALL_WSAIOW(IOC_VENDOR,1)typedefstruct_IP_HEADER//定义IP头{BYTEVersion_He
2、adLen;//版本(前4位)和首部长度BYTEServiceType;//服务类型WORDTotalLen;//数据报总长WORDID;//标识WORDFlags_FragOff;//标志(前3位)),后13位表示页偏移BYTETimeToLive;//生存周期BYTEProtocol;//协议WORDHdrChksum;//头校验和DWORDSrcAddr;//源地址DWORDDstAddr;//目地地址}IP_HEADER;voidchecksum(IP_HEADER*ip,WORD*sum){unsignedintsum_tmp;sum_tmp=MAKEWORD(i
3、p->ServiceType,ip->Version_HeadLen)+ip->TotalLen+ip->ID+ip->Flags_FragOff+MAKEWORD(ip->Protocol,ip->TimeToLive)+ip->HdrChksum+(WORD)(ip->SrcAddr>>16)+(WORD)(ip->SrcAddr&0xffff)+(WORD)(ip->DstAddr>>16)+(WORD)(ip->DstAddr&0xffff);if(sum_tmp>(2^16-1))sum_tmp=(unsignedshort)sum_tmp+1;*sum=(WOR
4、D)(~sum_tmp);}char*parseServiceType_getProcedence(BYTEb){switch(b>>5)//获取服务类型字段中优先级子域{case7:return"NetworkControl";//网络控制break;case6:..return"InternetworkControl";//网络控制break;case5:return"CRITIC/ECP";break;case4:return"FlashOverride";//最优先信号break;case3:return"Flsah";break;case2:return"Imme
5、diate";break;case1:return"Priority";//协议break;case0:return"Routine";//路由break;default:return"Unknow";break;}}char*parseServiceType_getTOS(BYTEb){b=(b>>1)&0x0f;//获取服务类型字段中的TOS子域switch(b){case0:return"Normalservice";//正常运行break;case1:return"Minimizemonetarycost";//成本break;case2:return"Maximi
6、zereliability";//可靠性break;case4:return"Maximizethroughput";//吞吐量break;case8:return"Minimizedelay";//延迟..break;case15:return"Maximizesecurity";//安全性break;default:return"Unknow";}}char*getProtocol(BYTEProtocol)//获取协议字段共8位{switch(Protocol)//以下为协议号说明:{case1:return"ICMP";//Internet控制报文协议case2:r
7、eturn"IGMP";//Internet组管理协议case4:return"IPinIP";//移动IP数据封装和隧道case6:return"TCP";//传输控制协议case8:return"EGP";//外部网关协议case17:return"UDP";//用户数据报文协议case41:return"IPv6";case46:return"RSVP";//资源预留协议case89:return"OSPF";//OpenShortestPathFirst开发式最短路径优先default:return"UNK
此文档下载收益归作者所有