资源描述:
《网络IP信息流分析系统报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数学与信息技术学院综合性设计性实验报告课程名tcp/ip学生姓名桑启苏班级10软件工程学号101303一、实验内容网络IP信息流分析系统二、实验目的比如:a)了解网络IP信息流的分析系统,以及它们在实际问题中的应用。b)掌握网络IP信息流的分析系统的实现方法,以及它们的基本操作。三、实验题目使用C语言,设计命令行程序:网络IP信息流的分析系统,用linux操作系统实现C语言的程序的运行,并实现Ip信息流的分析.四、解题思路的描述主要包括:(1)主要算法的功能和描述。该算法主要实现在linux系统上实现网络上
2、的Ip信息的分析,(2)源程序#include#include#include#include#include#include#include#include#include#include#include#include#
3、include#include#include#defineBUFF_LEN2048/*=======================================================================================*/intraw_sock(char*ifname)/*createrawsocketwithpromiscuousmode*/{intsock;structifreqethreq
4、;if((sock=socket(PF_PACKET,SOCK_RAW,htons(ETH_P_ALL)))<0){perror("socket");exit(EXIT_FAILURE);}/*setpromiscuosmode*/strncpy(ethreq.ifr_name,ifname,IFNAMSIZ);if(ioctl(sock,SIOCGIFFLAGS,ðreq)==-1){perror("ioctl");close(sock);exit(EXIT_FAILURE);}ethreq.ifr
5、_flags
6、=IFF_PROMISC;if(ioctl(sock,SIOCSIFFLAGS,ðreq)==-1){perror("ioctl");close(sock);exit(EXIT_FAILURE);}returnsock;}voidpcap(intsock)/*captureIPpackages*/{intn,pt;charbuffer[BUFF_LEN],*iphead;while((n=recvfrom(sock,buffer,BUFF_LEN,0,NULL,NULL))>14){pt
7、=buffer[12]*256+buffer[13];printf("=====[%04X]%dbytesread",pt,n);if(pt==0x0800){iphead=buffer+14;printf("4bitversion:%d",(iphead[0]>>4));printf("4bitheadlength:%d",(iphead[0]&0x0f)*4);printf("8bitTOS:%x",iphead[1]);printf("16bittotallength:%d",
8、iphead[2]*256+iphead[3]);printf("16bitidentity:%d",iphead[4]*256+iphead[5]);printf("3bitidentiy:%d",iphead[6]&0x07);printf("13bitpianyi:%d",(iphead[6]>>3)*256+iphead[7]);printf("8bitTTL:%d",iphead[8]);printf("8bitxieyi:%d",iphead[9]);printf("16bi
9、tcheck:%d",iphead[10]*256+iphead[11]);printf("32bitSIP:%d.%d.%d.%d",(unsignedchar)iphead[12],iphead[13],iphead[14],iphead[15]);printf("32bitDIP:%d.%d.%d.%d",(unsignedchar)iphead[16],iphead[17],iphead[18