监控IP数据包流量系统设计书.doc

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
监控IP数据包流量系统设计书 课程设计目的和要求 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所示。 一些必要的基础知识 熟悉IP首部格式 使用Winpcap工具 WinPcap是一个基于Win32平台的,用于捕获网络数据包并进行分析的开源库. WinPcap产生的目的,就是为Win32应用程序提供这种访问方式; WinPcap提供了以下功能 捕获原始数据包,无论它是发往某台机器的,还是在其他设备(共享媒介)上进行交换的 在数据包发送给某应用程序前,根据用户指定的规则过滤数据包 将原始数据包通过网络发送出去 收集并统计网络流量信息 使用Winpcap工具主要需要三个步骤: 1).安装底层驱动:在Winpcap官网()下载并安装Winpcap.exe即可 2).导入库文件:下载wpdpack开发包,并在开发环境(VC)中导入Lib和Include 文件夹路径。VC导入步骤(工具-选项-目录,分别在Include Files和Library Files中加入…/wpdpack/Include和…/wpdpack/Lib) 3).在应用程序中导入需要的DLL和头文件: 方法一:VC下:工程-设置-链接 在Object/Library modules下添加ws2_32.lib wpcap.lib(注意中间的空格) 方法二:在源文件中添加命令处理: #pragma comment(lib, “ws2_32.lib”) #pragma comment(lib, “wpcap.lib”) 本程序将会用到的Winpcap功能有: 获取本机所有适配器信息 pcap_findalldevs 以混杂模式打开适配器 pcap_open_live 编译并设置过滤器 pcap_compile pcap_setfilter 捕获数据包 pcap_next_ex 释放打开的适配器信息 pcap_freealldevs VC++图形窗口界面编程 包括按钮,编辑框,列表框,列表控件等控件的使用 其他相关知识,如文件操作,链表操作等 课程设计核心知识 1.获取本机网卡信息 本课程设计要实现对数据包的捕获,首先就要获取并列出本机上的所有网卡信息,这个功能是通过Winpcap提供的pcap_findalldevs来实现的。该函数原型如下 int pcap_findalldevs(pcap_if_t** alldevs, char* errbuf) pcap_if_t是一个用于描述网卡信息的结构体。里面包含了网卡的名字,描述等信息。通过这个函数可以得到一个网卡信息组成的链表。函数错误则返回-1。 2.打开用户选定的网卡 得到网卡信息之后,可以通过列表框等形式显示出来,在用户选择后,通过pcap_open_live打开指定网卡: pcap_t *pcap_open_live(char *device, int snaplen, int promisc, int to_ms, char *ebuf)   函数功能:获得用于捕获网络数据包的数据包捕获描述字。 参数说明:device参数为指定打开的网络设备名。snaplen参数定义捕获数据的最大字节数。promisc指定是否将网络接口置于混杂模式。to_ms参数指*定超时时间(毫秒)。ebuf参数则仅在pcap_open_live()函数出错返回NULL时用于传递错误消息。int pcap_compile(pcap_t*?p,struct bpf_program*????fp, char*?str,int??opti

文档评论(0)

你好世界 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档