欢迎来到天天文库
浏览记录
ID:52715505
大小:318.00 KB
页数:5页
时间:2020-03-29
《实验二-IP数据包的捕获与解析.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验二IP数据包的捕获与解析网络09021.实验目的:掌握网络层的基本原理,通过编程实现网卡截取标准格式的IP包;解析IP数据包,了解IP包结构中个字段的含义与用途。2.实验原理:IP数据报结构:3.实验环境平台:Windows、编程环境:VC6.0、语言:C++4流程图及源代码#include#include#include#include#include#pragmacomment(lib,"ws2_32")//指定连接到网络应用和int
2、ernet#defineIO_RCVALL_WSAIOW(IOC_VENDOR,1)typedefstructIP_HEAD{union//定义联合{unsignedcharVersion;unsignedcharHeadLen;};unsignedcharServiceType;unsignedshortTotalLen;unsignedshortIdentifier;union{unsignedshortFlags;unsignedshortFragOffset;};unsignedcharTimeToLive;unsignedcharProt
3、ocol;unsignedshortHeadChecksum;unsignedintSourceAddr;unsignedintDestinAddr;unsignedcharOptions;}ip_head;//定义IP头部的数据结构voidmain(intargc,char*argv[]){usingnamespacestd;ofstreamoutfile("C:\logfile.txt",ios::out);if(argc!=2){cout<4、n;}WSADATAWSAData;if(WSAStartup(MAKEWORD(2,2),&WSAData)!=0){cout<5、=TRUE;if(setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char*)&flag,sizeof(flag))==SOCKET_ERROR){cout<6、WSAGetLastError()<7、in_port=htons(6000);host_addr.sin_addr=*(in_addr*)pHostIP->h_addr_list[0];if(bind(sock,(PSOCKADDR)&host_addr,sizeof(host_addr))==SOCKET_ERROR){cout<8、dwBytesReturned=0;if(WSAIoctl(sock,IO_RCVALL,&dwBufferInLen,s
4、n;}WSADATAWSAData;if(WSAStartup(MAKEWORD(2,2),&WSAData)!=0){cout<5、=TRUE;if(setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char*)&flag,sizeof(flag))==SOCKET_ERROR){cout<6、WSAGetLastError()<7、in_port=htons(6000);host_addr.sin_addr=*(in_addr*)pHostIP->h_addr_list[0];if(bind(sock,(PSOCKADDR)&host_addr,sizeof(host_addr))==SOCKET_ERROR){cout<8、dwBytesReturned=0;if(WSAIoctl(sock,IO_RCVALL,&dwBufferInLen,s
5、=TRUE;if(setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char*)&flag,sizeof(flag))==SOCKET_ERROR){cout<6、WSAGetLastError()<7、in_port=htons(6000);host_addr.sin_addr=*(in_addr*)pHostIP->h_addr_list[0];if(bind(sock,(PSOCKADDR)&host_addr,sizeof(host_addr))==SOCKET_ERROR){cout<8、dwBytesReturned=0;if(WSAIoctl(sock,IO_RCVALL,&dwBufferInLen,s
6、WSAGetLastError()<7、in_port=htons(6000);host_addr.sin_addr=*(in_addr*)pHostIP->h_addr_list[0];if(bind(sock,(PSOCKADDR)&host_addr,sizeof(host_addr))==SOCKET_ERROR){cout<8、dwBytesReturned=0;if(WSAIoctl(sock,IO_RCVALL,&dwBufferInLen,s
7、in_port=htons(6000);host_addr.sin_addr=*(in_addr*)pHostIP->h_addr_list[0];if(bind(sock,(PSOCKADDR)&host_addr,sizeof(host_addr))==SOCKET_ERROR){cout<8、dwBytesReturned=0;if(WSAIoctl(sock,IO_RCVALL,&dwBufferInLen,s
8、dwBytesReturned=0;if(WSAIoctl(sock,IO_RCVALL,&dwBufferInLen,s
此文档下载收益归作者所有