计算机网络课程设计-监控IP包流量
计算机网络课程设计---监控IP数据包流量
![计算机网络课程设计---监控IP数据包流量](https://img.taocdn.com/s3/m/e6ebecf0b8f67c1cfad6b81c.png)
课程设计书学院计算机学院专业计算机科学与技术班级题目监控IP数据包流量教师学生课程设计小组成员及分工本小组成员:xxx yyy zzz分工:xxx 做本课程设计的目的,本课程设计的要求及本课程设计的一些内容yyy 做本课程设计的一些基础知识,本课程设计的分析,本课程设计的结果,本课程设计的总结zzz 做本课程设计的代码,本课程设计的框架设计,本课程设计的结果验证,本课程设计的逻辑分析。
目录一、课程设计目的和要求 (1)1.课程设计目的: (1)2.课程设计要求: (1)二、课程设计的内容 (2)三、课程设计核心知识 (4)四、课程设计框架 (6)五、课程设计详细分析 (8)六、实验源代码 (16)七、课程设计总结 (31)一、课程设计目的和要求1.课程设计目的:随着internet技术的发展,基于IP协议的网络应用成为网络技术研究与软件开发的一个重要基础,因此学习网络层的基本概念,了解IP协议的基本内容,对于掌握TCP/IP协议的主要内容和学习网络课程是十分重要的。
通过本次课程设计,有助于熟悉IP包格式和加深对IP协议的理解。
2.课程设计要求:编制程序,监控网络,捕获一段时间内网络上的IP数据包,按IP数据包的源地址统计出在该时间段内发出的IP包的个数,将其写入日志文件中并用图形表示出来。
程序的具体要求如下:1.在图形窗口界面下,根据用户输入的捕获时间和选择的网卡输出该段时间内的IP数据包流量分析2.能够将捕获的信息写入日志文件二、课程设计的内容1.课程设计的内容:1)使用Winpcap,Winpcap的主要功能在于独立于主机协议(如TCP/IP)发送和接受原始数据包;2)列出网卡列表,让用户选择可用的网卡;3)使用过滤器捕获IP包,别的包都过滤掉;4)捕获IP包并按包的源地址进行统计(用链表结构进行实现)。
5)将统计结果输出到图形窗口界面或输出到日志文件程序流程如图8-1所示。
2.一些必要的基础知识1.熟悉IP首部格式2.使用Winpcap工具WinPcap是一个基于Win32平台的,用于捕获网络数据包并进行分析的开源库.WinPcap产生的目的,就是为Win32应用程序提供这种访问方式;WinPcap提供了以下功能a)捕获原始数据包,无论它是发往某台机器的,还是在其他设备(共享媒介)上进行交换的b)在数据包发送给某应用程序前,根据用户指定的规则过滤数据包c)将原始数据包通过网络发送出去d)收集并统计网络流量信息使用Winpcap工具主要需要三个步骤:1).安装底层驱动:在Winpcap官网()下载并安装Winpcap.exe即可2).导入库文件:下载wpdpack开发包,并在开发环境(VC)中导入Lib和Include 文件夹路径。
计算机网络流量监控的设计与实现
![计算机网络流量监控的设计与实现](https://img.taocdn.com/s3/m/178089280b4e767f5bcfce09.png)
计算机网络流量监控的设计与实现一、计算机网络流量监控的设计和实现1.1监控系统管理模块计算机网络流量监控系统管理模块作为基础模块,主要包括了:管理功能以及系统的配置功能。
其中管理功能利用密码与用户名来阻止非系统人员的错误操作或是使用流量监控系统。
这里所说的用户指的是超级管理人员以及系统管理人员这两级用户。
超级管理人员能够增加管理人员的用户、修改管理人员的权限、删除管理人员的用户以及修改自身的密码等。
用户能够修改自身的密码。
系统的配置功能主要是用于完成整个系统的使用设置以及监控的网关地址等。
1.2流量采集模块和站点流量的管理模块(1)流量的采集模块作为关键模块,其主要负责计算机网络设备中的采集流量数据,并预处理收集到的流量数据,再将指定的流量数据存储到数据库中。
(2)站点流量的管理模块是以管理站点作为基础单位。
将被访问的站点根据新闻型站点、影视型站点、聊天型站点以及娱乐型站点等进行分类,并将这些站点的设置信息存储到服务器的数据库中,从而增强分类监控管理。
1.3实时流量与性能的监控模块实时的流量与性能监控模块也属于关键模块,其是基于端口的流量监控来完成监控管理工作。
以流量采集模块为前提,能够对端口的实际流量情况进行实时地监控,并利用图表形式来直观地选择端口的流量状况。
流量监控主要包括了:(1)指定IP和IP区段之间的流量监控。
(2)协议端口处的流量监控。
(3)指定AS和AS之间的流量监控。
实时流量与性能的监控模块还能够对计算机网络性能发出报警信号。
报警主要分成两类:(一)流量堵塞报警。
当流量上升时,就会达到设定域值。
(二)计算机网络堵塞报警。
当计算机流量增加时,丢包、交换机、路由器的中央处理器与内存储能力会发生严重性故障。
报警对性能管理、安全管理以及故障管理有着重要的影响。
二、计算机网络流量监控实现的核心技术要求计算机网络流量监控实现的核心技术是实时的数据采集技术。
这种技术是由Cisco企业研发的一种计算机交换技术,主要是利用对通过计算机网络设备中的的IPFlow实行统计与检测。
计算机网络课程设计_IP数据包的捕获与分析
![计算机网络课程设计_IP数据包的捕获与分析](https://img.taocdn.com/s3/m/ee389216e87101f69e31958b.png)
CENTRAL SOUTH UNIVERSITY计算机网络课程设计报告目录第一章课程设计的目的与要求 ........................... 错误!未定义书签。
1.1 课程设计的目的 .................................... 错误!未定义书签。
1.2 课程设计的要求 (1)第二章课程设计的内容 (3)2.1 课程设计的内容 (3)2.2 内容的要求 (3)第三章程序分析与设计 (4)3.1 IP数据包 (4)3.1.1 IP数据包的格式说明 (4)3.1.2 IP数据包的格式 (4)3.1.3 IP数据包的C++定义 (5)3.1.4 IP数据包的解析 (6)3.2 套接字 (7)3.1.4 套接字的使用 (7)3.1.4 使用原始套接字 (7)3.3 接受数据包 (7)第四章实验结果 (10)4.1 程序截图 (10)第五章总结 (11)5.1 实验心得 (11)第六章附录 (12)6.1 源代码 (12)第一章课程设计的目的与要求1.1 课程设计的目的计算机网络课程设计的目的,是为了让学生更深入地掌握计算机网络的核心内容,实现理论与实践相结合。
让学生用具体的实践成果,体现对理论知识的掌握程度。
有利于学生提高计算机网络的实践能力,加深对计算机网络理论知识的理解。
1.2 课程设计的要求(1)编写程序,实现系统的基本功能,鼓励自行增加新功能;(2)要有用户界面:要求至少采用文本菜单界面;鼓励采用图形菜单界面;(3)写课程设计报告,内容包括:●封面(参见附录I)●需求分析:以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?给出功能模块图和流程图。
同时明确规定:输入的形式和输出值的范围;输出的形式;程序所能够达到的功能;测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。
●概要设计:包括程序设计组成框图,程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。
计算机网络流量监控的设计与实现
![计算机网络流量监控的设计与实现](https://img.taocdn.com/s3/m/4248ec3910661ed9ad51f373.png)
Network World ・网络天地Electronic Technology & Software Engineering 电子技术与软件工程• 29【关键词】网络监控 流量测量 采集技术 技术构架 局域管理伴随着计算机技术的飞速发展,以网络连接为主导的科技力量逐渐增强,并形成了多点传输、兼容运行的管理机制,视频、下载、多播等技术手段日益丰富。
然而在网络应用不断扩大,线路错综、流量范围不断复杂的今天,网络连接不流畅、流量堵塞、链接速度缓慢、网络病毒传播等现象凸显出来,影响到我们的正常使用。
因此,加强网络流量监控,合理规划流量布置,调整网络运用时差,有效控制网络病毒传播,研发新型网络流量监控系统势在必行。
1 分析计算机网络流量监控技术现状传统的网络流量监控技术,是建立在某一区域内,点对点的直线传输和管理的,它的监控原理是:通过控制数据端口和输出端口的IP 流量,来检测系统内的流量,分析网络资源。
基于人们对现代网络技术的发展需求,开发设计新型网络流量监控系统,可高效、快捷的进行局域网络管理,调节网络流量资源,达到快速上网和减少病毒传播的目的,同时可借鉴传统流量监控技术,合理设计局域网络监控系统。
这类设计应用的特点是:通讯流量大、种类繁多、无固定服务端口、特征变化迅速和可控制管理等。
其监控系统应具有的技术功能:TCP/IP 协议,建设网络的基础单元;数据采集和流量测量技术,网络监控管理的必备条件等。
2 计算机网络流量监控的设计与实现2.1 计算机网络流量监控系统设计的技术构架为满足人们日益增长的网络需求,实现快速、高效的网络链接,合理调节资源配置,有效防范病毒传播,进行可控的网络管理,对局域网络流量监控进行设计(如图1)。
由图可知,局域网络流量监控系统是由系统管理、流量采集、实时性能监控、站点流量管理、P2P 流量计算机网络流量监控的设计与实现文/赵韬及分析统计模块组成,它们相互促进,协调管理,共同完成网络流量监控。
计算机网络_课程设计_IP数据包解析(I)
![计算机网络_课程设计_IP数据包解析(I)](https://img.taocdn.com/s3/m/47a759917fd5360cba1adbe2.png)
课设名称:IP数据包解析班级:学号:姓名:指导老师:日期:2012.6.15目录1.课程设计目的 (1)2.课程设计要求 (1)3.程序设计分析 (1)3.1 网卡设置 (1)3.2 使用套接字 (2)3.2.2 接收数据包 (2)3.3 定义IP头部的数据结构 (3)3.4 IP包的解析 (3)3.5 协议的定义 (4)3.6捕获处理 (4)4.运行结果 (5)5.总结 (5)6.源程序代码 (6)1.课程设计目的本课程设计的目的就是设计一个捕获并解析IP数据包的程序,并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从而对IP层的工作原理有更好的理解和认识。
2.课程设计要求本设计的目标是捕获网络中的IP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。
程序的具体要求如下:1)以命令行形式运行:ipparse logfile,其中ipparse是程序名, 而logfile 则代表记录结果的日志文件。
2)在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP位置和目的IP位置等内容。
3)当程序接收到键盘输入Ctrl+C时退出3.程序设计分析3.1 网卡设置为了获取网络中的IP数据包,必须对网卡进行编程,在这里使用套接字(socket)进行编程。
但是,在通常情况下,网络通信的套接字程序只能响应与自己硬件位置相匹配的数据包或是以广播形式发出的数据包。
对于其他形式的数据包,如已到达网络接口,但却不是发送到此位置的数据包,网络接口在骓投递位置并非自身位置之后将不引起响应,也就是说应用程序无法收取与自己无关的数据包。
我们要想获取网络设备的所有数据包,就是需要将网卡设置为混杂模式。
3.2 使用套接字套接字分为三种,即流套接字(Stream socket)、数据报套接字(Datagram Socket)和原始套接字(Raw Socket)。
电脑独立IP搭建与网络流量监控的配合使用
![电脑独立IP搭建与网络流量监控的配合使用](https://img.taocdn.com/s3/m/6390a65c58eef8c75fbfc77da26925c52dc59165.png)
电脑独立IP搭建与网络流量监控的配合使用在现代社会,互联网已渗透到我们生活的方方面面,网络安全问题也日益突出。
为了保护个人隐私、实现网络流量的监控与管理,许多用户开始使用电脑独立IP搭建和网络流量监控系统。
本文将探讨电脑独立IP搭建与网络流量监控的配合使用,为读者提供相关的了解和指导。
一、电脑独立IP搭建的概念和作用电脑独立IP搭建是指通过一定的技术手段,为电脑或网络设备配置一个独立的IP地址,使其能够与外部网络进行通信。
传统的网络配置中,多台电脑或设备往往通过局域网共享同一个公网IP地址,这样会导致网络流量无法准确追踪和监控。
而独立IP搭建则可以给每一台电脑或设备分配一个唯一的IP地址,提供更为精确的流量监控和管理。
独立IP搭建可以保护个人隐私,防止其他人利用共享IP地址进行恶意攻击或追踪个人行为。
同时,独立IP搭建还可以提高网络连接的稳定性和速度,避免因其他设备的使用而造成的网络拥塞和延迟。
二、网络流量监控的定义和应用网络流量监控是指对网络中的数据流量进行实时监测和分析,以了解网络使用情况、识别潜在威胁和优化网络性能。
网络流量监控可以帮助管理员了解网络用户的行为,及时发现大流量和异常流量,及时处理网络故障和安全威胁。
网络流量监控通常包括对流量的收集、分析和可视化展示。
通过网络流量监控工具,管理员可以查看网络中每台设备的流量使用情况、网络连接的质量和带宽利用率等信息。
此外,网络流量监控还可以帮助企业对网络使用进行策略规划和资源分配,提高网络的安全性和稳定性。
三、配合使用的益处和方法1. 提高网络安全性通过电脑独立IP搭建,每台电脑或设备都有一个独立的IP地址,可以更准确地追踪和监控网络流量。
管理员可以结合网络流量监控工具,实时查看和分析流量数据,及时发现潜在的网络安全威胁,采取相应的措施进行防御和修复。
2. 精细化的流量管理配合使用电脑独立IP搭建和网络流量监控,管理员可以根据不同设备的流量使用情况,制定相应的流量管理策略。
监控IP包的流量
![监控IP包的流量](https://img.taocdn.com/s3/m/5f1a16920b1c59eef9c7b42c.png)
计算机网络 课程设计报告课 题: 监控IP 包的流量 专 业 班 级: 计科10101班姓名(学号): 张鸣宇(201017010103): 李 玮(201017010143)指 导 教 师: 梅晓勇目 录评阅意见: 评定成绩: 指导老师签名: 年 月 日一目的和意义从社会角度来说,随着人们对Internet的依赖性越来越高,网络传输的业务类型变得缤纷多彩,在此背景下,需要对网络状况,网络性能进行准确的检测和评估,而这次课程设计正是对流量工程内容研究.从学习的角度来说,此次课程设计将我们带入网络编程领域,进一步网络知识的应用,监控IP包的流量课程设计让我们进一步了解IP协议的基本内容,对于掌握TCP/IP协议的主要内容和学习网络课程是十分重要的,此外,也加深了对Winpcap的理解和运用能力,同时也增长了知识,开阔了视野,对于以后的学习有很大的帮助。
二基本原理2.1概述1。
IP协议IP是TCP/IP模型中的网络层协议,又称为互联网协议,是支持网间互连的数据报协议,它与TCP协议一起构成了TCP/IP协议族的核心。
它提供网间连接的完善功能,包括IP数据报规定互联网范围内的IP地址格式[2].在因特网中IP 协议是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。
任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。
IP地址具有唯一性,根据用户性质的不同,可以分为不同的类别。
IP协议的特点如下:(1)IP协议是一种不可靠、无连接的数据报传送协议。
(2)IP协议是点对点的网络层通信协议.(3)IP协议向通信层隐藏了物理网络的差异。
(4)IP协议以一种数据报的形式传输数据,每个数据报独立传输,可能通过不同路径传输,因此可能不按顺序到达目的地,或者出现重复。
2. 关于Winpcap库Winpcap(windows packet capture)是windows平台下一个买费的、公共的基于windows的网络接口API库.主要为win32应用程序提供访问网络底层的能力。
计算机网络课程设计IP数据包解析(共5篇)
![计算机网络课程设计IP数据包解析(共5篇)](https://img.taocdn.com/s3/m/4797def785254b35eefdc8d376eeaeaad1f316ee.png)
计算机网络课程设计IP数据包解析(共5篇)第一篇:计算机网络课程设计 IP数据包解析课设名称:IP数据包解析班级:学号:姓名:指导老师:日期: 2012.6.15计算机网络课程设计报告目录1.课程设计目的 (1)2.课程设计要求 (1)3.程序设计分析 (1)3.1 网卡设置 (1)3.2 使用套接字 (2)3.2.2 接收数据包 (2)3.3 定义IP头部的数据结构 (3)3.4 IP包的解析 (3)3.5 协议的定义 (4)3.6捕获处理 (4)4.运行结果 (5)5.总结 (5)6.源程序代码 (6)Ip数据包解析1.课程设计目的本课程设计的目的就是设计一个捕获并解析IP数据包的程序,并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从而对IP 层的工作原理有更好的理解和认识。
2.课程设计要求本设计的目标是捕获网络中的IP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。
程序的具体要求如下:1)以命令行形式运行:ipparse logfile,其中ipparse是程序名, 而logfile则代表记录结果的日志文件。
2)在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。
3)当程序接收到键盘输入Ctrl+C时退出3.程序设计分析3.1 网卡设置为了获取网络中的IP数据包,必须对网卡进行编程,在这里使用套接字(socket)进行编程。
但是,在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的数据包或是以广播形式发出的数据包。
对于其他形式的数据包,如已到达网络接口,但却不是发送到此地址的数据包,网络接口在骓投递地Ip数据包解析址并非自身地址之后将不引起响应,也就是说应用程序无法收取与自己无关的数据包。
我们要想获取网络设备的所有数据包,就是需要将网卡设置为混杂模式。
监控IP数据包课程设计
![监控IP数据包课程设计](https://img.taocdn.com/s3/m/2cc34b2b7ed5360cba1aa8114431b90d6c8589ec.png)
监控IP数据包课程设计一、课程目标知识目标:1. 让学生理解IP数据包的基本结构和组成,掌握IP地址、子网掩码等基本概念。
2. 使学生掌握监控IP数据包的方法和技巧,了解不同网络设备在数据传输中的作用。
3. 帮助学生了解网络监控的法律法规和道德规范,提高网络安全意识。
技能目标:1. 培养学生运用网络抓包工具(如Wireshark)监控IP数据包的能力。
2. 培养学生分析网络数据包、诊断网络问题的实际操作技能。
3. 提高学生团队协作能力,学会在网络环境中与他人沟通、解决问题。
情感态度价值观目标:1. 培养学生对计算机网络知识的兴趣和求知欲,激发学生的学习热情。
2. 培养学生遵守网络法律法规,尊重网络安全,树立正确的网络道德观。
3. 培养学生面对网络问题时,保持积极的心态,勇于克服困难,追求卓越。
课程性质:本课程为计算机网络技术实践课程,旨在通过实际操作,让学生掌握监控IP数据包的方法和技巧。
学生特点:学生具备一定的计算机网络基础知识,对网络监控有一定的好奇心,动手操作能力强,但可能对法律法规和道德规范了解不足。
教学要求:教师应结合学生特点,注重理论与实践相结合,强调实践操作,引导学生主动探究,激发学生学习兴趣。
同时,注重培养学生的法律法规意识和道德素养,确保网络监控的合规性。
通过分解课程目标为具体学习成果,为教学设计和评估提供明确依据。
二、教学内容1. 计算机网络基础知识回顾:IP地址、子网掩码、路由器、交换机等基本概念。
2. IP数据包结构:学习IP数据包的头部和载荷结构,了解各字段的含义和作用。
3. 网络监控工具:介绍Wireshark等网络抓包工具的使用方法和操作技巧。
4. 实际操作:指导学生使用网络监控工具抓取和分析IP数据包,诊断网络问题。
5. 网络安全与法律法规:学习网络监控相关的法律法规,了解网络安全意识。
6. 案例分析:分析实际网络监控案例,提高学生分析问题和解决问题的能力。
教学内容安排和进度:第1课时:回顾计算机网络基础知识,介绍IP数据包结构。
计算机网络课程设计报告-IP数据报流量统计
![计算机网络课程设计报告-IP数据报流量统计](https://img.taocdn.com/s3/m/9645531d55270722192ef74e.png)
上是编制程序�监控网络�捕获一段时间内网络上的I P数据包�按I P数据包的本次课程设计主要是通过用V C++编程实现对网络中I P数据包流量的统计�实际1.1课程设计目的助于熟悉I P数据包格式并加深对I P协议的理解。
T C P/I P协议的主要内容和网络课程的学习是十分重要的�通过本次课程设计�有个重要基础�因此学习网络层以基本概念�了解I P协议的基本内容�对于掌握随着I n t e r n e t技术的发展�基于I P协议的应用成为网络技术研究与软件开发的一1引言传输�因此可能不按顺序到达目的地�或者出现重复。
I P协议以一种数据报的形式传输数据�每个数据报独立传输�可能通过不同路径I P协议向通信层隐藏了物理网络的差异。
I P协议是点对点的网络层通信协议。
I P协议是一种不可靠、无连接的数据报传送协议。
I P协议的特点如下�分为不同的类别。
根据流量设计程序的主要功能�相应的算法如下�调函数来显示网络流量了。
卡的数据包�包括不是发给本机的数据包�接下来的任务就是开始主循环调用回捕获网络数据流的某些数据�将网络适配器设置为统计模式就是接受所有经过网等�选择要监听的网络适配器就是要用户选择网卡�编译并设置过滤器是为了只图中取得网络适配器列表主要是得到网卡的相关信息�即网卡的个数、连接情况图1流量统计程序的主要功能根据以上设计原理可以得到流量统计程序的主要功能模块如下图1�}c o u t<<"N ode s c r i p t i o n a v a i l a b l e!"<<'\n';e l s ec o u t<<""<de s c r i p t i o n;i f(d->d e s c r i p t i o n)c o u t<<++i<<":"<n a m e;u_c h a r*p k t_d a t a)v o i d d i s p a t c h e r_h a n d l e r(u_c h a r*s t a t e,c o n s t s t r u c t p c a p_p k t h d r*h e a d e r,c o n s t //对于捕获到的每一个数据包应用此回调函数3.6回调函数的实现p c a p_c l o s e(f p);p c a p_l o o p(f p,0,d i s p a t c h e r_h a n d l e r,(P U C H A R)&s t_t s);进行处理�f p指向打开的网络适配器[4]//s t o r e c u r r e n t t i m e s t a m pp r i n t f("P P S=%I64u\n",P p s.Q u a d P a r t); p r i n t f("B P S=%I64u",B p s.Q u a d P a r t); //P r i n t t h e s a m p l e sp r i n t f("%s",t i m e s t r);//P r i n t t i m e s t a m p点击菜单栏里的工程——设置�选择连接第二步�把w i n p c a p开发包里面的l i b文件添加进去。
计算机网络课程设计解析ip数据包
![计算机网络课程设计解析ip数据包](https://img.taocdn.com/s3/m/3f3f13dfb8d528ea81c758f5f61fb7360b4c2b81.png)
计算机网络课程设计解析ip数据包一、教学目标本节课的教学目标是让学生了解和掌握IP数据包的组成和工作原理,培养学生分析问题和解决问题的能力。
具体分为以下三个部分:1.知识目标:使学生能够描述IP数据包的结构,理解IP地址的概念及其分类,掌握IP数据包的传输过程。
2.技能目标:培养学生运用网络协议分析工具分析IP数据包的能力,能够通过实际案例分析网络故障。
3.情感态度价值观目标:培养学生对计算机网络技术的兴趣,增强其对网络安全的意识,使其认识到计算机网络技术在现代社会中的重要作用。
二、教学内容本节课的教学内容主要包括以下几个部分:1.IP数据包的结构:介绍IP数据包的基本组成,包括头部和数据部分,以及各字段的含义。
2.IP地址:讲解IP地址的概念、分类及其表示方法,让学生了解不同类型的IP地址的使用场景。
3.IP数据包的传输:讲解IP数据包在网络中的传输过程,包括路由选择、分片与重组等。
4.案例分析:分析实际网络故障案例,让学生学会运用IP数据包分析工具进行问题排查。
三、教学方法为了提高学生的学习兴趣和主动性,本节课将采用多种教学方法:1.讲授法:讲解IP数据包的结构、IP地址的分类等基本概念。
2.案例分析法:分析实际网络故障案例,让学生学会运用IP数据包分析工具进行问题排查。
3.实验法:安排课堂实验,让学生亲自动手配置IP地址,分析IP数据包,增强实践操作能力。
4.讨论法:学生分组讨论,分享学习心得,培养团队合作精神。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:选用权威、实用的计算机网络教材,为学生提供系统的理论知识。
2.参考书:提供相关网络技术参考书籍,方便学生课后拓展学习。
3.多媒体资料:制作精美的PPT课件,直观展示IP数据包的结构和传输过程。
4.实验设备:准备网络实验设备,让学生能够亲自动手实践,提高实际操作能力。
五、教学评估为了全面、客观地评估学生的学习成果,本节课的教学评估将采用多种方式:1.平时表现:关注学生在课堂上的参与程度、提问回答等情况,给予及时的反馈和鼓励。
ip流量统计课程设计
![ip流量统计课程设计](https://img.taocdn.com/s3/m/4abc0b5477c66137ee06eff9aef8941ea76e4bfa.png)
ip流量统计课程设计一、课程目标知识目标:1. 理解IP流量的基本概念,掌握IP流量的统计方法;2. 学会使用相关软件工具进行IP流量统计,并能分析统计结果;3. 了解IP流量统计在网络安全、网络优化等方面的应用。
技能目标:1. 能够独立操作IP流量统计软件,进行数据收集和分析;2. 培养学生解决实际问题的能力,将理论知识运用到实践中;3. 提高学生的团队协作和沟通能力,通过小组讨论、分享心得,共同提高。
情感态度价值观目标:1. 培养学生对网络技术的兴趣,激发学生主动学习的热情;2. 增强学生的网络安全意识,使他们明白合理使用网络资源的重要性;3. 培养学生严谨的科学态度,注重实际操作与理论相结合。
课程性质:本课程为信息技术课程,旨在帮助学生掌握IP流量统计的基本知识和技能,提高网络素养。
学生特点:学生为初中生,对网络技术有一定的基础,好奇心强,喜欢探索新知识。
教学要求:结合学生特点,注重理论与实践相结合,以操作实践为主,培养学生的动手能力和解决问题的能力。
通过小组合作、讨论分享,提高学生的团队协作和沟通能力。
在教学过程中,关注学生的个体差异,因材施教,使每个学生都能达到课程目标。
最终将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. IP流量基本概念:介绍IP流量的定义、组成及作用,使学生了解IP流量在网络通信中的重要性。
相关教材章节:第一章 网络基础知识2. IP流量统计方法:讲解常见的IP流量统计方法,如SNMP、NetFlow等,并分析各自优缺点。
相关教材章节:第二章 网络监控与流量统计3. IP流量统计工具:介绍并演示常用IP流量统计软件,如Wireshark、PRTG 等,指导学生掌握操作方法。
相关教材章节:第三章 网络监控工具4. 数据分析与处理:教授如何分析IP流量统计结果,识别网络异常,为网络优化和网络安全提供依据。
相关教材章节:第四章 网络数据分析5. 实践操作:安排学生进行实际操作,分组进行IP流量统计,分析统计结果,并撰写分析报告。
计算机网络课程设计-监控IP包流量
![计算机网络课程设计-监控IP包流量](https://img.taocdn.com/s3/m/111bf95a84868762cbaed530.png)
目录一、课程设计目的: (3)二、课程设计要求: (3)三、课程设计主要思路分析: (3)四、设计流程图:........................................... .4五、运行结果: ............................................. .5六、总结: ................................................. .6参考文献................................................. ..6源代码: ................................................... .6一、课程设计目的随着In ternet技术的发展,基于IP协议的应用成为网络技术研究与软件开发的一个重要基础,因此学习网络层以基本概念,了解IP协议的基本内容,对于掌握TCP/IP协议的主要内容和学习网络课程是十分重要的,通过本次课程设计,有助于熟悉IP包格式和加深对IP协议的理解。
二、课程设计要求编制程序,监控网络,捕获一段时间内网络上的IP数据包,按IP数据包的源地址统计出该源地址在该时间段内发出的IP包的个数,将其写入日志文件中或用图形表示出来(建议用图形表示出统计结果)。
程序的具体要求如下:用命令行运行:IPStatistic time logfile其中,IPStatistic 是程序名;time是设定的统计时间间隔(单位为分钟,比如,2表示2分钟);logfile 表示统计结果写入的日志文件名(若用图形表示统计结果则可以不选这个参数)。
相关知识:IP是ICP/IP协议体系中的网络层协议,TCP UDP ICMP和IGMP等其他协议都是以IP协议为基础的。
IP的特点如下:(1)IP协议是一种不可靠、无连接的数据报传送协议。
(2)IP协议是点对点的网络层通信协议。
监控IP包流量05062124(吴文强)
![监控IP包流量05062124(吴文强)](https://img.taocdn.com/s3/m/6f14e09c7cd184254b353590.png)
航空大学计算机学院课程设计说明书课程名称:计算机网络课程设计设计题目:监控IP包流量专业:网络工程班级: 050621 :吴文强学号: 24评分:指导教师:周之平邓林生2008 年 6 月 29 日一.课程设计目的随着Internet技术的发展,基于IP协议的网络应用成为网络技术研究与软件开发的一个重要基础,因此学习网络层的基本概念,了解IP 协议的基本容,对于掌握TCP/IP协议的主要容和学习网络课程是十分重要的。
通过本课程设计,有助于熟悉IP包格式和加深对IP协议的理解。
二.需求分析1.编制程序,监控网络,捕获一段时间网络上IP数据包,按IP 数据包的源地址统计出该源地址在该时间发出的IP包个数,将其写入日志文件中或用图形表示出来。
2.设计可视化图形界面,可以进行捕获操作和停止操作,并且捕获完成后有统计结果显示和日志文件生成。
3.程序设计采用C++或者Java(本次设计决定采用C++)。
三.概要设计本次课程设计的主要目的是接收统计IP包,所以主要任务就是设置网卡以及相关的一系列操作,而图形界面的设计要求次之,所以主要介绍下我门对接收统计IP包的一些设计:⑴定义一些用于存储所要记录的源地址和该源地址发出的包的个数的结构体以及链表;⑵主要是查找网卡,设置网卡为混杂模式,编辑过滤器,设置过滤器;⑶捕获IP数据包并按包的源地址进行统计(存入链表中)。
程序流程图如下:图1程序流程图四.详细设计及编码(1)新建一个基于对话框的MFC AppWizard[exe]工程,取名为IPStatistic。
在IDD_IPSTATISTIC_DIALOG中加入界面所需要的控件,所加的控件从上到下依次有静态文本取名为网卡列表,下拉列表框(定义变量为m_comboboxx),静态文本取名为捕获包个数,静态文本(设置ID为IDC_CLOCK,用于显示捕获的包个数),开始捕获按钮,停止按钮,退出按钮,静态文本(设置ID为IDC_STATE,用于表示当前状态),一个组合框(取名为统计结果如下:), 一个清空列表按钮,最后一个是列表控制框(用于显示最后捕获的数据统计),此时的界面如下图:图2 初始化界面(2)向工程里添加C++头文件,命名为IPNodeList(存储结构接点和链表的定义),代码如下://IP结点类,存放IP包的源IP地址和其它发送数据包个数class IPNode{private:long m_lIPAddress; //IP地址long m_lCount; //发送数据包数public:IPNode * pNext;//构造函数IPNode(long sourceIP){m_lIPAddress=sourceIP;m_lCount=1; //初始化数据包个数为1}void addCount(){m_lCount++;}//返回数据包个数long getCount(){return m_lCount;}//返回IP地址long getIPAddress(){return m_lIPAddress;}};//结点链表class NodeList{IPNode * pHead; //链表头IPNode * pTail; //链表尾public:NodeList(){pHead=pTail=NULL;}~NodeList(){if(pHead!=NULL){IPNode * pTemp=pHead;pHead=pHead->pNext;delete pTemp;}}//将IP结点加入链表void addNode(long sourceIP){if(pHead==NULL) //当链表为空时{pTail=new IPNode(sourceIP);pHead=pTail;pTail->pNext=NULL;}else //当链表不为空时{for(IPNode * pTemp=pHead;pTemp;pTemp=pTemp->pNext) {//如果链表中存在此IP,发送数据包个数加1 if(pTemp->getIPAddress()==sourceIP){pTemp->addCount();break;}}//如果链表中没有此IP,则加入链表if(pTemp==NULL){pTail->pNext=new IPNode(sourceIP);pTail=pTail->pNext;pTail->pNext=NULL;}}}IPNode* GetpHead(){return pHead;}};(3)本次设计需要用到Winpcap软件,必须设置VC的环境,首先下载wpdpack,解压后看到其中包含docs,Includes,lib,Examples等文件,然后打开VC,点击“Tools->Option->Directories”, 在include files添加……\wpdpack\Include目录;在Library files 中添加……\wpdpack\Lib目录(4)在IPStatisticDlg.cpp中添加下列头文件:#include "stdafx.h"#include "IPStatistic.h"#include "IPStatisticDlg.h"#include "IPNodeList.h"#include <iostream.h>#include <iomanip.h>#include <fstream.h>#include <stdlib.h>#include <stdio.h>#include <conio.h>#include "pcap.h"#pragma comment(lib,"Wpcap.lib")#pragma comment(lib,"Ws2_32.lib")(5)定义一些程序中将要用的全局变量和IP包的头部结构,如下://IP包的头部结构struct ip_header{unsigned char ver_ihl;unsigned char tos;unsigned short tlen;unsigned short identification;unsigned short flags_fo;unsigned char ttl;unsigned char proto;unsigned short crc;DWORD saddr;DWORD daddr;unsigned int op_pad;};pcap_if_t *d; //当前所用网卡pcap_if_t *alldev[5]; //所有网卡存储数组pcap_t *fp; //网卡描述符char errbuf[PCAP_ERRBUF_SIZE]; //错误信息存储unsigned int netmask; //子网掩码char packet_filter[]="ip"; //过滤,选择IP协议struct bpf_program fcode; //将过滤规则转换为核能够处理的字节码struct pcap_pkthdr *header;const unsigned char *pkt_data;NodeList link; //存储数据用链表bool capstop; //信号量:线程需要中止。
IP流量统计课程设计
![IP流量统计课程设计](https://img.taocdn.com/s3/m/e0564769caaedd3383c4d3d9.png)
IP流量统计摘要IP就是真实流量,是有人真正浏览了您的网站而产生的流量,每台电脑只有一个IP地址,所以一个IP就是一个人,反映在统计上就是独立IP数量,IP 是Internet Protocol(因特网协议)的缩写,它是通过计算机网络进行交流的最常用的协议之一。
IP监控解决方案就是通过有线或者无线IP网络把视频信息以数字化的形式来进行传输。
只要是网络可以到达的地方就一定可以实现视频监控和记录,并且这种监控还可以与很多其它类型的系统进行完美的结合,无论是由模拟摄像机加视频服务器组成的解决方案,还是单独由网络摄像机组成的解决方案,或者是两者混合组成的解决方案,IP监控都已被证明是一种极具吸引力的解决方案。
在越来越多的原有行业应用中,这种革命性的技术正在逐步取代传统的监控系统,在提高安全性的同时也进一步的降低了成本;而在许多新的应用领域,它还是第一次用到,也因此开创和激发了许多新的市场。
正是由于它系统的可扩展性,IP监控逐渐巩固了其在现有监视和远程监控行业应用的地位,也加速了在其他新兴行业的应用,监控本地网络,捕获一段时间内以本机为源或目的地址的IP数据包,统计IP 数据的信息,列出本机到相同目的地址或同一源地址到本机且数据包协议类型相同的数据包的数量。
IP协议的目标很简单:生成发往目的地的数据报,而且除了把这个数据包发送到下一跳路由器之外,不需要担心任何事情。
实际上,IP协议很复杂,否则,IP数据报头就不需要那么多的字段。
IP协议负责接收和发送指定IP地址数据包。
但是,IP协议并不保证数据传递的可靠性。
关键词:ip监控;监控系统;ip数据包ABSTRACTIP is the real flow, is someone who really browsing your website traffic generated, each computer has only one IP address, so a IP is a person, reflected in the statistics on the number of independent IP is, IP Internet Protocol (Internet Protocol) abbreviation, it is one of the communication through computer network the most commonly used protocol.IP monitoring solution is through wired or wireless IP network video information in a digital form for transmission. As long as the network can reach the place will be the implementation of video monitoring and recording, and the monitor can also perfect combination and system of many other types of, whether the solution is composed of analog cameras and video servers, or separate from network camera solution composition, or both mixture solution the IP monitor, have been proved to be an attractive solution. In more and more original industry applications, this revolutionary technology is gradually replacing the traditional monitoring system, in improving the safety and also further reduce the cost; but in many new applications, it is the first time to use, thereby creating and inspired many new market. It is precisely the system scalability, IP monitoring gradually consolidate the existing monitoring and remote monitoring application status, also accelerate the application in other emerging industries, monitoring the local network, captures a time machine to the IP data source or destination address of the packet, IP statistics information the same number, listing the machine to the destination address or addresses to the same source packet protocol type and the same data packet.The IP protocol goal is simple: generation to the destination data report, in addition to the data packets to the next hop router, do not need to worry about anything. In fact, the IP protocol is very complex, otherwise, the IP header of the data does not need the field so much. The IP protocol is responsible for receiving and sending to specify the IP address of the packet. However, the IP protocol does not guarantee the reliability of data transmission.Key words: IP monitoring; monitoring system; IP packe引言 (1)1背景知识简介 (2)1.1IP协议 (2)1.2W INPCAP库 (2)2程序代码设计流程 (4)2.1IP包流量统计程序的主要功能模块 (4)2.2程序流程图 (5)3程序代码设计具体步骤简述 (6)3.1获取本机网卡信息 (6)3.2打开用户选定的网卡 (6)3.3编译并设置过滤器 (7)3.4抓包 (7)3.4.1捕获ip包的实现原理 (7)3.4.2 捕获ip包的实现函数 (7)4 结果及分析 (8)5出现的问题及解决方法 (9)结论 (13)致谢 (14)参考文献 (15)引言随着Internet技术的发展,基于IP协议的应用成为网络技术研究与软件开发的一个重要基础,因此学习网络层以基本概念,了解IP协议的基本内容,对于掌握TCP/IP协议的主要内容和学习网络课程是十分重要的,通过本次课程设计,有助于熟悉IP包格式和加深对IP协议的理解。
网络程序设计IP数据包流量统计
![网络程序设计IP数据包流量统计](https://img.taocdn.com/s3/m/ac7dcb517ed5360cba1aa8114431b90d6c8589ac.png)
网络程序设计IP数据包流量统计一、题目及要求(一)题目:IP数据包流量统计(二)要求:编制程序,监控网络,捕获一段时间内网络上的IP 数据包,按IP 数据包的源地址统计出该源地址在该时间段内发出的IP 包的个数,将其写入日志文件中或用图形表示出来(建议用图形表示出统计结果)。
用命令行运行:IPSta time logfile;其中IPSta是程序名,time 是设定的统计时间间隔,logfil表示统计结果写入的日志文件名(若用图形表示统计结果则可以不选这个参数)。
或在此基础上用图形化界面实现上述功能。
二、系统概要设计(一)流量统计主要功能模块图图中取得网络适配器列表主要是得到网卡的相关信息,即网卡的个数、连接情况等,选择要监听的网络适配器就是要用户选择网卡,器设置为统计模式就是接受所有经过网卡的数据包,包括不是发给本机的数据包,接下来的任务就是开始主循环调用回调函数来显示网络流量了。
(二)程序流程图图中获取网卡列表是为了得到网卡的相关信息,以便于用户进行选择,选取Ethermet网卡是用户所选择的网卡类型,编译设置过滤器网卡既将网卡设置为混杂(统计)模式是为了接受所有经过网卡的数据包,包括不是发给本机的数据包,开始主循环以是否超时为判断条件,循环体内主要有捕获IP数据包、将IP包的源地址加入链表、条件判断,循环结束后输出链表内容,程序至此结束。
三、系统详细设计1. 取得网络适配器列表//取得网络适配器列表步骤中,alldevs是pcap_if_it指针,指向链表头,errbuf 是char类型数组,存储错误信息[3]。
pcap_findalldevs(&alldevs,errbuf);cout<<”网络适配器列表:”<<’\n’;for(d=alldevs;d;d=d->next){cout<<++i<<":"<name;if (d->description)cout<<""<description;elsecout<<"No description available!"<<'\n';}2. 指定要监听的网络适配器并打开cout<<”输入要监听的网络适配器号:”<<i;< p="">cin>>inum;for(d=alldevs,i=0;inext,i++);fp=pcap_open_live(d->name,65536,1,1000,errbuf);3. 编译并设置过滤器//编译过滤器,fp指向打开的网络适配器,fcode为编译完成后的过滤器存储地址,“tcp“给出了过滤条件,下一个参数表示是否被优化(0为false,1为true),最后一个参数给出了子网掩码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录一、课程设计目的: (3)二、课程设计要求: (3)三、课程设计主要思路分析: (3)四、设计流程图: (4)五、运行结果: (5)六、总结: (6)参考文献 (6)源代码: (6)一、课程设计目的随着Internet技术的发展,基于IP协议的应用成为网络技术研究与软件开发的一个重要基础,因此学习网络层以基本概念,了解IP协议的基本内容,对于掌握TCP/IP协议的主要内容和学习网络课程是十分重要的,通过本次课程设计,有助于熟悉IP包格式和加深对IP协议的理解。
二、课程设计要求编制程序,监控网络,捕获一段时间内网络上的IP数据包,按IP数据包的源地址统计出该源地址在该时间段内发出的IP包的个数,将其写入日志文件中或用图形表示出来(建议用图形表示出统计结果)。
程序的具体要求如下:用命令行运行:IPStatistic time logfile其中,IPStatistic是程序名;time是设定的统计时间间隔(单位为分钟,比如,2表示2分钟);logfile表示统计结果写入的日志文件名(若用图形表示统计结果则可以不选这个参数)。
相关知识:IP是ICP/IP协议体系中的网络层协议,TCP、UDP、ICMP和IGMP等其他协议都是以IP 协议为基础的。
IP的特点如下:(1)IP协议是一种不可靠、无连接的数据报传送协议。
(2)IP协议是点对点的网络层通信协议。
(3)IP协议向通信层隐藏了物理网络的差异。
三、课程设计主要思路分析1.课程设计中的重点及难点(1)程序中会用到Winpcap, Winpcap是Windows packet capture的缩写,这是UNIX下的lipbcap移植到Windows下的产物,是Win32环境下数据包捕获的开放代码函数库。
Winpcap由内核级的数据包过滤器,底层动态链接库(packet.dll)和一个高层的独立于系统的库(wpcap.dll)组成。
Winpcap提供以下功能:1)捕获原始数据报,包括共享网络上各主机发送/接收的数据报以及各主机之间交换的数据报。
2)在数据报发往应用程序之前,按照自定义的规则过滤某些特殊的数据报。
3)将用户构造的数据报发送到网络中。
4)统计网络的流量。
Winpcap的主要功能在于独立于主机协议(如TCP/IP)发送和接收原始数据报。
也就是说,Winpcap不能阻塞、过滤或控制其他应用程序数据报的收发,它只是监听共享网络上传送的数据报。
因此,它不能用于QoS调度程序或个人防火墙。
基于Winpcap的应用程序一般按照下面几个步骤编写:1)获取网络设备列表。
2)选择网卡并打开。
3)当捕获数据包时,可能需要设置过滤器。
4)捕获数据包或者发送数据包。
Packet.dll相关数据结构typedef struct_ADAPTER ADAPTER //描述一个网络适配器typedef struct_PACKET PACKET具 //描述一组网络数据报的结构typedef struct NetType NetType //描述网络类型的数据结构typedef struct npf_if_addr npf_if_addr //描述一个网络适配器的IP地址struct bpf_hdr //数据报头部struct bpf_stat //当前捕获数据报(2)列出网卡列表,让用户选择可用的网卡。
(3)注意过滤器的使用,只需捕获IP所,别的包都需过滤掉。
2.参考算法(1)取得当前网络设备列表(在标准输出上显示,以让用户进行选择)。
(2)将用户选择的Ethernet卡以混杂模式打开,以接收到所有的数据包。
(3)设置过滤器,此处的过滤器“IP”。
(4)捕获IP包并按包的源地址进行统计(用链表结构进行实现)。
程序流程如图1-1所示:四、设计流程图。
图1-1程序流程图五、运行结果:安装好WinPcap软件,在VC++界面上点击工具->选项->目录。
添加Include文件夹下的所有文件和Lib下的所有内容,调试完程序无误后,点击开始—>运行“cmd”进入目标文件夹Debug下运行IPI.EXE文件并加入参数2 bl.txt。
此时程序会检测电脑系统中的网卡数,然后选择程序运行时的网络接口,耐心等待两分钟后就会得到程序的运行结果.图1-2系统中网络接口数图1-3选择第一个网络接口图1-4 1分钟之后捕获的ip地址和数据包六、总结:通过本次计算机网络课程设计,我更加充分的理解了课本上的知识,并能够加以扩展,从而应用于实践当中,这几天的课程设计令我受益匪浅,我意识到我们所学的东西将来都是要付诸实践的,所以一切要从实际情况出发,理论联系实际,这样才能真正发挥我们所具备的能力。
这次计算机网络课程设计历时二个星期,在整整十多天的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。
同时,在老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!参考文献[1] 吴功宜胡晓英.计算机网课程设计北京:机械工业出版社,2007.12.[2] 张荛学郭国强.计算机网络与Internet教程(第二版) 北京:清华大学出版社2006.11.[3] 王春晓赵艳标.计算机网络教程北京:机械工业出版社,2005.08.[4] 张仁何云.计算机网络课程设计指导北京:清华大学出版社 2006.05.源代码://主程序#include <iostream.h>#include <iomanip.h>#include <fstream.h>#include <stdlib.h>#include <stdio.h>#include <conio.h>#include "pcap.h"//#include "IPNodeList.h"#pragma comment(lib,"Wpcap.lib")#pragma comment(lib,"Ws2_32.lib")//IP包的头部包括struct ip_header{unsigned char ver_ihl; //版本号(4位)+头部长度(4位) unsigned char tos; //服务类型unsigned short tlen; //总长度unsigned short identification; //标识unsigned short flags_fo; //标志+片偏移unsigned char tll; //生存时间unsigned char proto; //协议unsigned short crc; //校验码DWORD saddr; //源地址DWORD daddr; //目的地址unsigned int op_pad; //选项+填充};class IPNode{private:long m_lIPAddress; //IP地址long m_lCount; //发送数据包数public:IPNode *pNext; //指向下一个IP结点//构造函数IPNode(long sourceIP){m_lIPAddress=sourceIP;m_lCount=1; //初始化数据包个数为1 }//数据包个数加1void addCount(){m_lCount++;}//返回数据包个数long getCount(){return m_lCount;}//返回IP地址long getIPAddress(){return m_lIPAddress;}};//结点链表class NodeList{IPNode *pHead;IPNode *pTail;public:NodeList(){pHead=pTail=NULL;}~NodeList(){if(pHead!=NULL){IPNode *pTemp=pHead;pHead=pHead->pNext;delete pTemp;}}//IP结点加入链表void addNode(long sourceIP){if(pHead==NULL) //当链表为空时{pTail=new IPNode(sourceIP);pHead=pTail;pTail->pNext=NULL;}else //不为空时{for(IPNode *pTemp=pHead;pTemp;pTemp=pTemp->pNext){//如果链表中存在此IP,发送数据包个数加1if(pTemp->getIPAddress()==sourceIP){pTemp->addCount();break;}}//如果链表中没有此IP,则加入链表if(pTemp==NULL){pTail->pNext=new IPNode(sourceIP);pTail=pTail->pNext;pTail->pNext=NULL;}}}//输出IP结点,即IP地址和其他送的IP包的个数ostream& print(ostream & out){for(IPNode *pTemp=pHead;pTemp;pTemp=pTemp->pNext){long lTemp=pTemp->getIPAddress();out<<inet_ntoa(*(in_addr*)&(lTemp))<<'\t';out<<pTemp->getCount()<<endl;}return out;}};void main(int argc,char *argv[]){if (argc!=3) //判断是否正确{cout<<"Usage:IPStatistic time logfile"<<endl;cout<<"Press any key to continue..."<<endl;_getch();return;}double min=atof(argv[1]);pcap_if_t *alldevs; //网络设备结构pcap_if_t *d,*head=NULL;pcap_t *fp; //网卡描述char errbuf[PCAP_ERRBUF_SIZE]; //错误信息unsigned int netmask; //子网掩码char packet_filter[]="ip"; //过滤,选择IP协议struct bpf_program fcode;struct pcap_pkthdr *header;const unsigned char *pkt_data;//获取网络设备列表if(pcap_findalldevs(&alldevs,errbuf) == -1){cout<<"Error in pcap_findalldevs:"<<errbuf;return;}int i=1; //网卡数if(i==0) //无设备{cout<<"\nNo interfaces found! Make sure Winpacp is installed.\n";return;}if(i>=1){int j=0;for(d=alldevs;d;d=d->next) //列出网卡列表,让用户进行选择{cout<<++j<<":"<<d->name;if(d->description)cout<<" "<<d->description<<endl;}cout<<"\nEnter the interface number(1-"<<j<<"):";int k;cin>>k;if(k<1||k>j){cout<<"out of range"<<endl;return;}for(d=alldevs,i=1;i<k;d=d->next,i++); //找到选择的网卡head=d;}//以混杂模式方式打开网卡if((fp=pcap_open_live(head->name,1000,1,1000,errbuf))==NULL) {cout<<"\nUnable to open the adapter."<<endl;pcap_freealldevs(alldevs);return;}//获取子网掩码if(head->addresses!=NULL)netmask=((structsockaddr_in*)(head->addresses->netmask))->sin_addr.S_un.S_addr;else//没有地址则假设为C类地址netmask=0xFFFFFF00;//编译过滤器if(pcap_compile(fp,&fcode,packet_filter,1,netmask)<0){cout<<"\nUnable to compile the packet filter.Check the syntax.\n";pcap_freealldevs(alldevs);return;}//设置滤波器if(pcap_setfilter(fp,&fcode)<0){cout<<"\nError setting the filter.\n";pcap_freealldevs(alldevs);return;}//显示提示信息及每项的含义cout<<"\t\tlistening on"<<head->description<<"..."<<endl<<endl;ofstream fout(argv[2],ios::app); //日志记录文件fout<<"\tIP Statistic:("<<min<<"minutes)"<<endl;time_t tmp=time(NULL);fout<<ctime(&tmp);cout<<"IP Statistic:("<<min<<"minutes)"<<endl;fout<<" Sour ip"<<"\tpacket numbers"<<endl;//释放设备列表pcap_freealldevs(alldevs);NodeList link; //存储数据用链表int res;time_t beg;time_t end;time(&beg); //获取当前时间while((res=pcap_next_ex(fp,&header,&pkt_data))>=0){time(&end); //获得系统时间if(end-beg>=min*60) //计算系统时间break;if(res==0)continue; //超时ip_header *ih;//找到I头得位置ih=(ip_header*)(pkt_data+14); //14为以太头的长度link.addNode(ih->saddr); //将源IP地址加入链表}cout<<"Sour IP"<<'\t'<<"packet numbers"<<endl;link.print(cout); //输出到屏幕link.print(fout); //输出到日志fout<<endl;}(注:文档可能无法思考全面,请浏览后下载,供参考。