网络嗅探器的设计与实现

上传人:痛*** 文档编号:85754319 上传时间:2022-05-06 格式:DOC 页数:15 大小:69.50KB
收藏 版权申诉 举报 下载
网络嗅探器的设计与实现_第1页
第1页 / 共15页
网络嗅探器的设计与实现_第2页
第2页 / 共15页
网络嗅探器的设计与实现_第3页
第3页 / 共15页
资源描述:

《网络嗅探器的设计与实现》由会员分享,可在线阅读,更多相关《网络嗅探器的设计与实现(15页珍藏版)》请在装配图网上搜索。

1、-计算机网络课 程 设 计题 目 网络嗅探器的设计与实现系 (部) 姓 名 学 号 指导教师 2021 年7月18日. z.-计算机网络课程设计任务书一、设计题目、内容及要求题目:网络嗅探器的设计与实现内容: 本设计是关于网络嗅探器的设计与实现,功能包括实现网络层抓包,对获得包的源和目的地址、端口、协议等进展分析和实现简单的包嗅探器功能。要求: 1.实现网络嗅探器的界面2. 实现抓取数据包的功能。3. 实现清空列表功能二、要求的设计成果课程设计说明书、设计实物、图纸等 1课程设计报告2实现网络嗅探器的程序代码三、进程安排1、设计工作4学时2、实现与调试20学时3、课程设计报告6学时四、主要参考

2、资料1王群 计算机网络平安技术2吴功宜,董大凡王珺等.计算机网络高级软件编程技术【M】.:清华大学,20213谢小特,王勇军.基于winPcap的捕包程序设计【J】.软件特刊,200711:71-724胡晓元,史浩山.winpcap包截获系统的分析及其应用【J】.计算机工程,20051:96-975赵辉,叶子青.VisualC+系统开发实例精粹【M】,:人民邮电,2005. z.-. z.-网络嗅探器的设计与实现摘要:网络嗅探器是对网络中的数据帧进展捕获的一种被动监听手段,是一种常用的收集有用数据的方法。本设计是关于网络嗅探器的设计与实现,其功能包括实现网络层抓包 ,对获得包的源和目的地址、端

3、口、协议等进展分析和实现简单的包嗅探器功能。关键字:网络嗅探器;数据包捕获;套接字引言由于网络技术的开展,计算机网络的应用越来越广泛,其作用也越来越重要。计算机网络平安问题更加严重,网络破坏所造成的损失越来越大。但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。嗅探器是一种常用的收集有用数据的方法,可以作为网络数据包的设备。嗅探器是通过对网卡的编程来实现网络通讯的,对网卡的编程是使用通常的套接字socket方式来进展。通常的套接字程序只能响应与自己硬件地址相匹配的或是以播送

4、形式发出的数据帧,对于其他形式的数据帧比方已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。1 根本概念1.1 嗅探器每一个在局域网LAN上的工作站都有其硬件地址,这些地址唯一地表示了网络上的机器。当用户发送一个数据包时,这些数据包就会发送到LAN上所有可用的机器。在一般情况下,网络上所有的机器都可以听到通过的流量,但对不属于自己的数据包则不予响应。嗅探器工作在网络的底层,在网络上监听数据包来获取敏感信息。从原理

5、上来说,在一个实际的系统中,数据的收发是由网卡来完成的,网卡接收到传输来的数据,其内的单片程序接收数据帧的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收就接收后产生中断信号通知CPU,认为不该接收就丢掉不管,所以不该接收的数据网卡就截断了,计算机根本就不知道。对于网卡来说一般有四种接收模式:a)播送方式:该模式下的网卡能够接收网络中的播送信息。b)组播方式:设置在该模式下的网卡能够接收组播数据。c)直接方式:在这种模式下,只有目的网卡才能接收该数据。d)混杂模式:在这种模式下的网卡能够接收一切通过它的数据,而不管该数据是否是传给它的。嗅探程序是一种利用以太网

6、的特性把网络适配卡NIC,一般为以太网卡置为混杂模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息包,而不管该数据是否传给它的。1.2 相关协议1.2.1 IP协议网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。IP层接收由更低层网络接口层,例如以太网设备驱动程序发来的数据包,并把该数据包发送到更高层-TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址源地址和接收它的主机的地址目的地址。1.2.2 TCP协议

7、如果IP数据包中有已经封好的TCP数据包,则IP将把它们向上传送到TCP层。TCP将包排序并进展错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。TCP将它的信息送到更高层的应用程序,例如Telnet的效劳程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。1.2.3 UDP协议UDP与TCP位于同一层,但对于数据包的顺序错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的效劳,UDP主要用于那些面向查询-应答的效劳,例如NFS。相对于FTP或Tel

8、net,这些效劳需要交换的信息量较小。使用UDP的效劳包括NTP网落时间协议和DNSDNS也使用TCP。 欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接也可以称为握手因为在两个系统间没有虚电路,也就是说,与UDP相关的效劳面临着更大的危险。1.3 数据包包(Packet)是TCP/IP协议通信传输中的数据单位,一般也称数据包。 TCP/IP协议是工作在OSI模型第三层(网络层)、第四层(传输层)上的,而帧是工作在第二层(数据链路层)。上一层的内容由下一层的内容来传输,所以在局域网中,包是包含在帧里的。 数据包的构造非常复杂,主要由目的IP地址、源IP地址、净载数据等局部构成。正

9、是因为数据包具有这样的构造,安装了TCP/IP协议的计算机之间才能相互通信。我们在使用基于TCP/IP协议的网络时,网络中其实传递的就是数据包。比方说当你上网时翻开*个网页,这个简单的动作,就是你先发送数据包给那个,它接收到了之后,根据你发送的数据包的IP地址,返回给你网页的数据包,也就是说,网页的浏览,实际上就是数据包的交换。2 网络嗅探器的作用嗅探器是网络的抓包工具,可以对网络中大量数据抓取,从而方便使用者对网络中用户的一些信息进展分析,所以,通常被黑客运用于网络攻击。我们如果也能掌握网络嗅探器的原理和设计,可以将它运用与网络故障检测、网络状况的监视,还可以加强企业信息平安防护。3 网络嗅

10、探器原理嗅探器作为一种网络通讯程序,也是通过对网卡的编程来实现网络通讯的,对网卡的编程也是使用通常的套接字(socket)方式来进展。但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以播送形式发出的数据帧,对于其他形式的数据帧比方已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。显然,要到达此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。具体到编程实现上,这种对网卡混杂模式的设置是通过

11、原始套接字(raw socket)来实现的,这也有别于通常经常使用的数据流套接字和数据报套接字。在创立了原始套接字后,需要通过setsockopt()函数来设置IP头操作选项,然后再通过bind()函数将原始套接字绑定到本地网卡。为了让原始套接字能承受所有的数据,还需要通过ioctlsocket()来进展设置,而且还可以指定是否亲自处理IP头。至此,实际就可以开场对网络数据包进展嗅探了,对数据包的获取仍象流式套接字或数据报套接字那样通过recv()函数来完成。但是与其他两种套接字不同的是,原始套接字此时捕获到的数据包并不仅仅是单纯的数据信息,而是包含有 IP头、 TCP头等信息头的最原始的数据

12、信息,这些信息保存了它在网络传输时的原貌。通过对这些在低层传输的原始信息的分析可以得到有关网络的一些信息。由于这些数据经过了网络层和传输层的打包,因此需要根据其附加的帧头对数据包进展分析。下面给出数据包的总体构造:3.1 UDP数据段头数据在从应用层到达传输层时,将添加TCP数据段头,或是UDP数据段头。其中UDP数据段头比较简单,由source port(源端口号) 、destination port(目的端口号) 、udp length(udp长度) 、udp checksum(udp校验和)组成。UDP报头构造体为:typedef struct udphdr unsigned short

13、 sport;/*source port(源端口号)*/unsigned short dport;/*destination port(目的端口号)*/unsigned short len;/*udp length(udp长度)*/unsigned short cksum;/*udp checksum(udp校验和)*/UDP_HDR;3.2 TCP数据段头TCP数据头则比较复杂,以20个固定字节开场,在固定头后面还可以有一些长度不固定的可选项,由source port(源端口号)、destination port(目的端口号) 、顺序号、确认号、TCP头长 、校验和 紧急指针、可选项(0或更

14、多的32位字)、数据(可选项)。组成。TCP报头构造体为:typedef struct tcpheader unsigned short int sport;/*source port (源端口号)*/unsigned short int dport;/*destination port(目的端口号)*/unsigned int th_seq;/*sequence number(包的序列号)*/unsigned int th_ack;/*acknowledgement number(确认应答号)*/unsigned char th_*:4;/*unused(未使用)*/unsigned cha

15、r th_off:4;/*data offset(数据偏移量)*/unsigned char Flags;/*标志全*/unsigned short int th_win;/*windows(窗口)*/unsigned short int th_sum;/*checksum(校验和)*/unsigned short int th_urp;/*urgent pointer(紧急指针)*/TCP_HDR;3.3 IP数据段头在网络层,还要给TCP数据包添加一个IP数据段头以组成IP数据报。IP数据头以大端点机次序传送,从左到右,版本字段的高位字节先传输(SPARC是大端点机;Pentium是小端点

16、机)。如果是小端点机,就要在发送和接收时先行转换然后才能进展传输。IP数据段头格由版本 IHL 效劳类型 总长、标志、 分段偏移、头校验和、源地址、目的地、选项(0或更多)组成。IP数据报头的构造体为:struct ipheader unsigned char ip_hl:4;/*header length(报头长度*/unsigned char ip_v:4;/*version(版本)*/unsigned char ip_tos;/*type os service效劳类型*/unsigned short int ip_len;/*total length (总长度)*/unsigned sh

17、ort int ip_id;/*identification (标识符)*/unsigned short int ip_off;/*fragment offset field(段移位域)*/unsigned char ip_ttl;/*time to live (生存时间)*/unsigned char ip_p;/*protocol(协议)*/unsigned short int ip_sum;/*checksum(校验和)*/unsigned int ip_src;/*source address(源地址)*/unsigned int ip_dst;/*destination addres

18、s(目的地址)*/ ;4 网络嗅探器的设计在以太网中, 信息是以明文的形式在网络上传输 , 当将网络适配器设置为混杂模式时, 由于采用以太网播送信道争用的方式, 使得监听系统与正常通信的网络能够并联连接, 并可捕获任何一个在同一冲突域上传输的数据包。IEEE802. 3 标准的以太网采用的是持续CSMA 的方式, 正是由于以太网采用这种播送信道争用的方式, 使得各个站点可以获得其他站点发送的数据。运用这一原理使信息捕获系统能够拦截我所要的信息, 这是捕获数据包的物理根底。首先,抓包系统必须绕过操作系统的协议栈来访问在网络上传输的原始数据包, 这就要求一局部运行在操作系统核心内部, 直接与网络接

19、口驱动交互。这个局部是系统依赖的, 在W inpcap 的解决方案里它被认为是一个设备驱动, 称作NPF ( NetgroupPacket F ilter) 。W inpcap 提供了两个不同的库: Packet. dll 和W pcap. dll。Wpcap. dll提供了更加友好、功能更加强大的函数调用。W inPcap 的优势在于提供了一套标准的抓包接口, 与libpcap 兼容, 可使得原来许多UN I* 平台下的网络分析工具快速移植过来,便于开发各种网络分析工具, 充分考虑了各种性能和效率的优化, 包括对于NPF 内核层次上的过滤器支持, 支持内核态的统计模式, 提供了发送数据包的能

20、力。前者提供了一个底层AP I, 伴随着一个独立于M icrosoft 操作系统的编程接口, 这些AP I可以直接用来访问驱动的函数; 后者导出了一组更强大的与libpcap 一致的高层抓包函数库( capture prmi itives) 。这些函数使得数据包的捕获以一种与网络硬件和操作系统无关的方式进展。网络嗅探器工作在网络环境的底层, 拦截所有正在网络上传送的数据, 并且通过相应的解析处理, 可以实时分析这些数据的内容, 进而分析所处的网络状态和整体拓扑布局。含了相应设备的名称和描述。取得网卡列表后就在屏幕上显示出来, 如果网卡没有被发现就显示有关错误, pcap _ findallde

21、vs ( ) 同其他的libpcap函数一样有一个errbuf参数, 当有异常情况发生时,这个参数会被pcap填充为*个特定错误字串。程序功能示意如下:获得网卡的信息后就可以按数据捕获的要求翻开网卡。但是 大局部的包捕获程序都将混杂模式设为默认。数据包的过滤通过设置数据流过滤规则来实现,数据包过滤处理时嗅探技术中的难点和重点,WinPcap提供了最强大的数据流过滤引擎。它才用了一种高效的方法来捕获网络数据流的*些数据且常常和系统的捕获机制相集成。过滤数据的函数定 UDP的起始位置,就可以解析出原端口和目的端口。数据包捕获流程图:图4.1 数据包捕获流程图4.1 嗅探器设计需要构造体嗅探器需要的

22、构造体是由IP数据报构造体、TCP报头构造体、UDP报头构造体组成。每个构造体如何定义已在网络嗅探器的原理中具体讲过。4.2 过滤规则的主要代码if (sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP)=SOCKET_ERROR)e*it(1);gethostname(name, MA*_HOSTNAME_LAN);pHostent = gethostbyname(name);sa.sin_family = AF_INET;sa.sin_port = htons(6000);memcpy(&sa.sin_addr.S_un.S_addr, pHostent

23、-h_addr_list0, pHostent-h_length);bind(sock, (SOCKADDR *)&sa, sizeof(sa);/*bind()设定自己主机的IP地址和端口号*/if (WSAGetLastError()=10013)e*it(1);WSAIoctl(sock, SIO_RCVALL, &optval, sizeof(optval), NULL, 0, &dwBytesRet, NULL, NULL);pIpheader = (struct ipheader *)RecvBuf;pTcpheader = (struct tcpheader *)(RecvBuf

24、+ sizeof(struct ipheader );pUdpheader = (struct udphdr *) (RecvBuf+ sizeof(struct ipheader );while (1)memset(RecvBuf, 0, sizeof(RecvBuf);recv(sock, RecvBuf, sizeof(RecvBuf), 0);saSource.sin_addr.s_addr = pIpheader-ip_src;strncpy(szSourceIP, inet_ntoa(saSource.sin_addr), MA*_ADDR_LEN);saDest.sin_addr

25、.s_addr = pIpheader-ip_dst;strncpy(szDestIP, inet_ntoa(saDest.sin_addr), MA*_ADDR_LEN);lentcp =(ntohs(pIpheader-ip_len)-(sizeof(struct ipheader)+sizeof(struct tcpheader); lenudp =(ntohs(pIpheader-ip_len)-(sizeof(struct ipheader)+sizeof(struct udphdr);4.3 循环抓包4.3.1 TCP包if(pIpheader-ip_p)=IPPROTO_TCP&

26、lentcp!=0)printf(*n);pCount+; datatcp=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct tcpheader); printf(-TCP-n);printf(n目的IP地址:%sn,szDestIP);printf(n目的端口:%in,ntohs(pTcpheader-dport);printf(datatcp address-%*n,datatcp);printf(size of ipheader-%in,sizeof(struct ipheader);printf(size o

27、f tcpheader-%in,sizeof(struct tcpheader);printf(size of the hole packet-%in,ntohs(pIpheader-ip_len);printf(nchar Packet%i %i=,pCount,lentcp-1);for (i=0;ilentcp;i+)printf(*%.2*,*(datatcp+i);if (i%10=0)printf(n);printf(;nnn);for (i=0;ilentcp;i+)if( *(datatcp+i)=20)printf(%c,*(datatcp+i);elseprintf(.);

28、printf(nn*n); 运行后的结果:图4.3.1 TCP包运行结果4.3.2 UDP包if(pIpheader-ip_p)=IPPROTO_UDP&lentcp!=0)pCount+;dataudp=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct udphdr); printf(-UDP-n);printf(n目的IP地址:%sn,szDestIP);printf(n目的端口:%dn,ntohs(pTcpheader-dport);printf(UDP数据地址:%*n,dataudp);printf(IP头部

29、长度:%in,sizeof(struct ipheader);printf(UDP头部长度:%in,sizeof(struct udphdr);printf(包的大小:%in,ntohs(pIpheader-ip_len);printf(nchar Packet%i %i=,pCount,lenudp-1);for (i=0;ilenudp;i+)printf(*%.2*,*(dataudp+i);if (i%10=0)printf(n);printf(;nnn);for (i=0;ilenudp;i+)if( *(dataudp+i)=20)printf(%c,*(dataudp+i);el

30、seprintf(.);printf(nn*n); 运行后的结果:图4.3.2 UDP包运行结果5 总结通过这次课程设计,使我更加扎实的掌握了有关嗅探器方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经历缺乏。这次课程设计不仅培养了我独立思考、动手操作的能力,在各种其它能力上也都有了提高。从理论到实践,在这段日子里,不仅可以稳固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结

31、论,才能真正为社会效劳,从而提高自己的实际动手能力和独立思考的能力。此次设计也让我明白了思路即出路,有不懂或不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。参考文献:1吴功宜,董大凡王珺等.计算机网络高级软件编程技术【M】.:清华大学,20212谢小特,王勇军.基于winPcap的捕包程序设计【J】.软件特刊,200711:71-723胡晓元,史浩山.winpcap包截获系统的分析及其应用【J】.计算机工程,20051:96-974赵辉,叶子青.VisualC+系统开发实例精粹【M】,:人民邮电,2005:. z.-*include /*win

32、dows socket的头文件,系统定义的*/ *include *include *include *include *pragma ment(lib,ws2_32.lib) /*API相关连的Ws2_32.lib静态库*/ *define MA*_HOSTNAME_LAN 255 *define SIO_RCVALL _WSAIOW(IOC_VENDOR,1) *define MA*_ADDR_LEN 16 struct ipheader unsigned char ip_hl:4; /*header length(报头长度*/ unsigned char ip_v:4; /*versio

33、n(版本)*/ unsigned char ip_tos; /*type os service效劳类型*/ unsigned short int ip_len; /*total length (总长度)*/ unsigned short int ip_id; /*identification (标识符)*/ unsigned short int ip_off; /*fragment offset field(段移位域)*/unsigned char ip_ttl; /*time to live (生存时间)*/ unsigned char ip_p; /*protocol(协议)*/ unsi

34、gned short int ip_sum; /*checksum(校验和)*/ unsigned int ip_src; /*source address(源地址)*/ unsigned int ip_dst; /*destination address(目的地址)*/ ; /* total ip header length: 20 bytes (=160 bits) */ typedef struct tcpheader unsigned short int sport; /*source port (源端口号)*/ unsigned short int dport; /*destinat

35、ion port(目的端口号)*/ unsigned int th_seq; /*sequence number(包的序列号)*/ unsigned int th_ack; /*acknowledgement number(确认应答号)*/ unsigned char th_*:4; /*unused(未使用)*/ unsigned char th_off:4; /*data offset(数据偏移量)*/ unsigned char Flags; /*标志全*/ unsigned short int th_win; /*windows(窗口)*/ unsigned short int th_

36、sum; /*checksum(校验和)*/ unsigned short int th_urp; /*urgent pointer(紧急指针)*/ TCP_HDR; typedef struct udphdr unsigned short sport; /*source port(源端口号)*/ unsigned short dport; /*destination port(目的端口号)*/ unsigned short len; /*udp length(udp长度)*/ unsigned short cksum; /*udp checksum(udp校验和)*/ UDP_HDR; vo

37、id main() SOCKET sock; WSADATA wsd; DWORD dwBytesRet; unsigned int optval = 1; unsigned char *dataudp,*datatcp; int i,pCount=0,lentcp, lenudp; SOCKADDR_IN sa,saSource, saDest; struct hostent FAR * pHostent; char FAR nameMA*_HOSTNAME_LAN; char szSourceIPMA*_ADDR_LEN, szDestIPMA*_ADDR_LEN,RecvBuf65535

38、 = 0; struct udphdr *pUdpheader; struct ipheader *pIpheader; struct tcpheader *pTcpheader; WSAStartup(MAKEWORD(2,1),&wsd); if (sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP)=SOCKET_ERROR) e*it(1); gethostname(name, MA*_HOSTNAME_LAN); pHostent = gethostbyname(name); sa.sin_family = AF_INET; sa.sin_port

39、 = htons(6000); memcpy(&sa.sin_addr.S_un.S_addr, pHostent-h_addr_list0, pHostent-h_length); bind(sock, (SOCKADDR *)&sa, sizeof(sa); /*bind()设定自己主机的IP地址和端 口号*/ if (WSAGetLastError()=10013) e*it(1); WSAIoctl(sock, SIO_RCVALL, &optval, sizeof(optval), NULL, 0, &dwBytesRet, NULL, NULL); pIpheader = (str

40、uct ipheader *)RecvBuf; pTcpheader = (struct tcpheader *)(RecvBuf+ sizeof(struct ipheader ); pUdpheader = (struct udphdr *) (RecvBuf+ sizeof(struct ipheader ); while (1) memset(RecvBuf, 0, sizeof(RecvBuf); recv(sock, RecvBuf, sizeof(RecvBuf), 0); saSource.sin_addr.s_addr = pIpheader-ip_src; strncpy(

41、szSourceIP, inet_ntoa(saSource.sin_addr), MA*_ADDR_LEN); saDest.sin_addr.s_addr = pIpheader-ip_dst; strncpy(szDestIP, inet_ntoa(saDest.sin_addr), MA*_ADDR_LEN); lentcp =(ntohs(pIpheader-ip_len)-(sizeof(struct ipheader)+sizeof(struct tcpheader); lenudp =(ntohs(pIpheader-ip_len)-(sizeof(struct ipheade

42、r)+sizeof(struct udphdr); if(pIpheader-ip_p)=IPPROTO_TCP&lentcp!=0) printf(*n); pCount+; datatcp=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct tcpheader); printf(-TCP-n); printf(n目的IP地址:%sn,szDestIP); printf(n目的端口:%in,ntohs(pTcpheader-dport); printf(datatcp address-%*n,datatcp); pr

43、intf(size of ipheader-%in,sizeof(struct ipheader); printf(size of tcpheader-%in,sizeof(struct tcpheader); printf(size of the hole packet-%in,ntohs(pIpheader-ip_len); printf(nchar Packet%i %i=,pCount,lentcp-1); for (i=0;ilentcp;i+) printf(*%.2*,*(datatcp+i); if (i%10=0) printf(n); printf(;nnn); for (

44、i=0;ilentcp;i+) if( *(datatcp+i)=20) printf(%c,*(datatcp+i); else printf(.); printf(nn*n); if(pIpheader-ip_p)=IPPROTO_UDP&lentcp!=0) pCount+; dataudp=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct udphdr); printf(-UDP-n); printf(n目的IP地址:%sn,szDestIP); printf(n目的端口:%dn,ntohs(pTcphead

45、er-dport); printf(UDP数据地址:%*n,dataudp); printf(IP头部长度:%in,sizeof(struct ipheader); printf(UDP头部长度:%in,sizeof(struct udphdr); printf(包的大小:%in,ntohs(pIpheader-ip_len); printf(nchar Packet%i %i=,pCount,lenudp-1); for (i=0;ilenudp;i+) printf(*%.2*,*(dataudp+i); if (i%10=0) printf(n); printf(;nnn); for (i=0;ilenudp;i+) if( *(dataudp+i)=20) printf(%c,*(dataudp+i); else printf(.); printf(nn*n); . z.-:. z.-. z.-课程设计成绩评定表出勤情况出勤天数 缺勤天数成绩评定出勤情况及设计过程表现20分论文20分设计成果60分总成绩100分综合评定 指导教师签名: 年 月 日. z.-. z.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!