计算机网络课程设计_报告-(23795)
- 格式:doc
- 大小:531.22 KB
- 文档页数:37
计算机网络课程设计班级:学号:姓名:一、课程设计的目的和意义1.1设计目的掌握IP地址的分类,准确理解子网、掩码的概念,确切地明了IP地址的合法格式。
并判断该地址是否属于一个给定的子网。
1.2设计的意义1、有利于对基础知识的理解2、有利于逻辑思维的锻炼程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。
即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。
3、有利于与其他学科的整合在程序设计中,我们可以解决其它学科有关问题,也利用其它课程的有关知识来解决信息技术中比较抽象很难理解的知识。
在信息技术课中整合其它学科的知识,发挥信息技术的优势。
4、有利于治学态度的培养。
程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。
因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。
这当中就有一个严谨治学、一丝不苟的科学精神的培养。
二、课程设计的内容和要求在掌握IP地址的表示方法以及子网划分方法的基础上,并以计算机网络中关于IP地址的相关理论知识为基石,运用C/C++语言按如下要求完成程序。
1.在判断一个IP地址合法性时要自行编写代码,不要使用任何inet函数2.命令行格式:ip_test subnet/mask ip_addr其中,ip_test为程序名;subnet为子网号;mask是一个整型数值,代表子网掩码连续1的个数;ip_addr表示要测试的IP地址。
比如说,要测试的IP地址为202.113.16.10,子网号码是202.113.16.0,子网掩码是255.255.255.0,则命令行为ip_test202.113.16.0/24 202.113.16.10。
淮海工学院计算机工程学院课程设计报告设计名称:计算机网络课程设计姓名:学号:专业班级:系(院):计算机工程学院设计时间:设计地点:计算机网络技术室2地址分配思路:A按功能划分,将校园划分为三大区域:办公区,教学区,生活区,根据每个地点所需的IP数,最小的网络号为24位,划分子网,即可防止IP地址重复。
B因为使用预留的INTERNET地址,可以提高内部网络的安全。
同时学校有14767个信息点。
故采用B类网络的保留地址(10.15.0.0/16)。
同时采用CIDR无分类分配方式。
同时为了与公网通信,需要申请一个公网IP地址。
整体设计原则如下1.采用私IP地址,通过NAT技术和外网通信。
2.与internet 互联设备IP地址采用真实IP地址。
3.面向用户的私有IP地址,由统一出口的边缘设备(路由器、防火墙)进行地址翻译。
4.使用VLAN将不同功能网络隔离。
5.除生活区采用DHCP动态分配IP地址以外。
其余全部采用静态IP地址。
这样设计,既可以充分利用已有的公网IP地址,解决了IP地址空间不足的,既可以方便的实现互通互连,而且将地址翻译(NAT)这种耗费设备资源的工作由网络边缘设备分担,避免广播风暴,提高网络数据传输整体性能。
增加网络的安全性,可更加安全的对所有网络设备进行管理。
4 拓扑图5确定网络的应用模式校园网以图书馆为网络的中心点,用光纤连接到其他各层楼,形成了学校的局域网。
使用的是分布式的结构,将各个子网分布到各个楼宇之间,实现楼宇内部信息点的分布。
采用浏览器/服务器的模式,图形化的交互界面,这样既简单又方便,同时也是现在用的比较多的一种模式。
层次化网络设计通常分为三层结构,即核心层、汇聚层和接入层。
核心层主要为相互通信的节点提供高速优化的带宽传输,为提高核心层的传输速率,通常不在该层实施基于策略的包操作,也极少在该层布置主机,但常常为核心层提供必要的链路备份。
汇聚层介于在核心层和接入层之间,通过提供基于策略的连接管理,实现接入层对核心层的可控制的访问。
计算机网络教学设计(精选10篇)计算机网络教学设计(精选10篇)作为一名无私奉献的老师,时常需要准备好教学设计,教学设计是一个系统化规划教学系统的过程。
教学设计应该怎么写才好呢?下面是小编精心整理的计算机网络教学设计,仅供参考,希望能够帮助到大家。
计算机网络教学设计篇1教学目标1、探究过程和方法:培养学生阅读科学资料的能力、动手操作能力和语言表达能力2、知识与技能:知道什么是信息指导学生通过阅读、讨论,了解传递和信息方法的发展过程初步认识现代通信网知道保存信息方法的变革促进了人们生活水平的提高3、情感态度:培养学习科学的世界观,正确、科学的探究方法激发学生对现代技术发展为人类生活带来的便捷提出希望,并为此努力教学重难点及解决方法人类信息的传递经过了一个漫长的发展过程,冲“鸿雁传书”“狼烟滚滚”到现在的信息数字化,可以说人类的信息传递方式有了质的飞跃。
特别是近几十年来网络的飞速发展使人类真正实现了沟通的零距离。
本课正是在此基础上,使学生通过对网络的学习了解人类在信息传递方式上的飞速发展。
本课的教学重点是引导学生认识信息保存方法的变革对人类生活的影响课时安排一课时教学准备相关录象资料、挂图、几条新闻录象、磁带、磁盘、光盘、竹简、木简教学流程一、导入1、在我们这个世界里经常有很多事情发生。
就像美国对伊拉克动武这件事情,你是怎么知道的?你知道信息是怎样传递和保存的吗?我们一起来研究板书课题二、教授新课1、介绍信息的传递方法(1)我们先来解决一个问题:什么是“信息”?你认为什么是“信息”?(新闻、消息、知识等)(2)信息是人们生活中不可缺少的一部分,为了能看的远、听的远,人们很早就渴望“千里眼、顺风耳”,于是,人们想出了很多办法来传递信息。
(3)阅读P32第一段2、讨论保存信息的方法和变革给生活带来的影响(1)随着信息的传递向更快、更远、更准的方向发展,人们保存信息的方法也发生了重大变革。
从古到今,聪明的人类想出了什么方法呢?你能不能按照时间的顺序排列出?(2)究竟你列出的顺序对吗?我们一起来揭示答案。
计算机网络课程设计实验报告计算机网络课程设计实验报告一、实验内容和要求1、实验一数据包的捕获与分析Wireshark是一种开源的网络数据包的捕获和分析软件,本实验经过Wireshark软件的安装使用,监控局域网的状态,捕获在局域网中传输的数据包,并结合在计算机网络课程中学习到的理论知识,对常见网络协议的数据包做出分析,加深网络课程知识的理解和掌握。
具体内容及要求如下:Wireshark软件的安装;Wireshark软件的启动,并设置网卡的状态为混杂状态,使得Wireshark能够监控局域网的状态;启动数据包的捕获,跟踪PC之间的报文,并存入文件以备重新查;设置过滤器过滤网络报文以检测特定数据流;对常见协议的数据包的报文格式进行分析,利用协议分析软件的统计工具显示网络报文的各种统计信息。
2、实验二网络层实验—Ping程序的设计与实现实验目的本实验目的是使学生掌握网络层协议的原理及实现方法。
实验设计内容本实验为ICMP实验。
实验内容:Ping命令实现的扩充,在给定的Ping程序的基础上做如下功能扩充:-h 显示帮助信息-b 允许ping一个广播地址,只用于IPv4-t 设置ttl值,只用于IPv4-q 安静模式。
不显示每个收到的包的分析结果,只在结束时,显示汇总结果Ping命令的基本描述Ping的操作是向某些IP地址发送一个ICMP Echo消息,接着该节点返回一个ICMP Echo replay消息。
ICMP消息使用IP头作为基本控制。
七、实验数据、结果分析实验一见附录实验二八、总结经过程序设计,对ping的工作原理进一步认识。
特别是ICMP 报文的结构模式,以及ping的一些扩展功能的实现。
对基于linux的c语言编程的方法进一步掌握。
程序设计中,对各种函数之间的协同工作运用理解更加深刻。
更掌握了如何使用信号量进行通信。
虽然程序设计及调试中也遇到不少困难,也都在同学帮助下,及经过资料查询逐一解决。
计算机网络课程设计报告书Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT《计算机网络》课程设计报告书专业:计嵌班级:计嵌151学号:姓名:张耀目录一、设计题目二、设备选型三、IP地址规划四、拓扑图设计五、主要技术六、配置清单七、总结一、设计题目1、课设目的巩固《计算机网络》和《网络通信》两门课程的知识,在本次课程设计中充分利用前面所学的知识,熟练应用所有技术,系统掌握一个较为复杂的网络配置过程。
在课设中有少量需要的技术教学过程中没有涉及,请自己查阅CCNA资料。
2、课设内容项目背景:某中小型企业有两个部门,销售部(vlan 10)与行政部(vlan 20)。
要求同部门之间采用二层交换网络相连;不同部门之间采用单臂路由方式互访。
企业有一台内部web 服务器,承载内部网站,方便员工了解公司的即时信息.局域网路由器启用多种路由协议(静态路由、动态路由协议),并实施路由控制、负载均衡、链路认证、访问限制等功能.企业有一条专线接到运营商用以连接互联网,采用HDLC封装,由于从运营商只获取到一个公网IP地址,所以企业员工上网需要做NAT网络地址转换,具体拓扑结构如上图所示。
二、设备选型三、IP地址规划四、拓扑图设计五、主要技术Trunk:在路由/交换领域,VLAN的中继端口叫做trunk。
trunk技术用在交换机之间互连,使不同VLAN通过共享链路与其它交换机中的相同VLAN通信。
交换机之间互连的端口就称为trunk端口。
trunk是基于OSI第二层数据链路层(DataLinkLayer)的技术。
Vlan:在计算机网络中,一个二层网络可以被划分为多个不同的广播域,一个广播域对应了一个特定的用户组,默认情况下这些不同的广播域是相互隔离的。
不同的广播域之间想要通信,需要通过一个或多个路由器。
这样的一个广播域就称为VLAN。
单臂路由:在计算机网络中,一个二层网络可以被划分为多个不同的广播域,一个广播域对应了一个特定的用户组,默认情况下这些不同的广播域是相互隔离的。
计算机网络课程设计华中科技大学信息学部软件姓名:专业班级:学号:指导老师:目录一、课程的性质、目的和任务 (3)二、课程内容和基本要求 (3)(一)、协议包的分析,网络协议的组成 (3)1、捕获ARP请求,ARP应答数据包 (3)2、捕获ICMP数据包,对其进行分析研究 (4)3、捕获TCP“三次握手”“2次两次握手”释放连接数据包 (6)4、捕获HTTP,DNS,DHCP数据包,分析其构成 (10)5、通过捕捉smtp协议包捕捉邮箱密码 (15)小结 (15)(二)、编写一个程序自动生成CRC校验码 (15)程序代码: (15)编译运行 (16)(三)、机架实验 (17)小结 (17)(四)、模拟学校校园网 (17)校园网拓扑图 (17)网络测试 (18)小结 (22)一、课程的性质、目的和任务该课程为实践类课程。
通过本课程,(1)学生需要深入理解网络协议的组成,对网络中传输数据的过程有更深入的认识。
(2)学生需要了解计算机网络工程设计的一般任务,明确计算机网络设计与建设的基本原则,熟悉计算机网络需求分析的目标、任务与方法,掌握计算机网络设计的通用方法,并学会撰写规范的计算机网络方案书。
二、课程内容和基本要求(一)、协议包的分析,网络协议的组成1、捕获ARP请求,ARP应答数据包,分析其组成特征。
总结ARP协议运行的基本过程。
本机(192.168.84.69)ping目的主机(192.168.84.39):抓包截图:本机192.168.84.69 源MAC地址 c8:9c:dc:59:39:30目的主机 192.168.84.39 目的MAC地址 c8:9c:dc:5a:2b:57ARP协议运行过程:ARP进程在本局域网上发送ARP请求,目的主机在ARP 请求分组里看到自己的IP,就发送一个响应分组,写入自己的硬件地址。
2、捕获ICMP数据包,对其进行分析研究。
(icmp请求数据包,icmp应答数据包)Ping 进行ICMP数据包截获ICMP请求数据包:TYPE:8CODE:0 CHECKSUM :0X225CICMP应答数据包:TYPE:0CODE:0CHECKSUM :0X2A5CICMP协议数据包对IP分组在传送时出现的异常情况进行报告,对IP报文传输时出现的差错、拥塞、路由改变、以及路由器或主机信息的获取等情况,向源端主机提交报告,由源主机采取相应措施,改进传输质量。
计算机网络的课程设计一、课程目标知识目标:1. 让学生理解计算机网络的基本概念,掌握网络的结构、分类及工作原理。
2. 使学生掌握TCP/IP协议的基本原理,了解不同层级的网络协议及其功能。
3. 帮助学生了解网络设备的基本功能,如交换机、路由器等,并掌握其配置方法。
技能目标:1. 培养学生运用所学知识构建小型网络的能力,提高实际操作技能。
2. 培养学生运用网络命令和软件分析网络故障,具备一定的网络维护能力。
3. 提高学生的团队协作能力,通过分组讨论和实践,共同解决问题。
情感态度价值观目标:1. 培养学生对计算机网络技术的兴趣,激发他们探索网络世界的热情。
2. 培养学生具备网络安全意识,遵守网络道德规范,合理使用网络资源。
3. 通过学习计算机网络,使学生认识到科技对社会发展的作用,增强社会责任感。
课程性质分析:本课程旨在让学生深入了解计算机网络的原理和应用,结合实践操作,提高学生的网络技能。
学生特点分析:高中生具有一定的逻辑思维能力和动手操作能力,对新鲜事物充满好奇心,但需引导他们将理论知识与实际应用相结合。
教学要求:1. 注重理论与实践相结合,提高学生的实际操作能力。
2. 创设情境,激发学生的学习兴趣,引导他们主动探究。
3. 强调团队协作,培养学生的沟通能力和协作精神。
二、教学内容1. 计算机网络基本概念:包括网络定义、功能、分类及拓扑结构。
教材章节:第一章 计算机网络概述2. 网络体系结构:学习OSI七层模型和TCP/IP四层模型,了解各层功能及协议。
教材章节:第二章 网络体系结构及协议3. 网络设备与传输介质:介绍常用的网络设备(如交换机、路由器等)及传输介质(如双绞线、光纤等)。
教材章节:第三章 网络设备与传输介质4. 网络协议详解:深入学习TCP/IP协议族,包括IP、TCP、UDP、ICMP等协议。
教材章节:第四章 网络协议5. 网络配置与管理:学习网络设备的配置方法,了解网络管理的基本知识。
计算机网络课程设计报告设计名称:计算机网络课程设计姓名:张志风学号:姓名:黄世昌学号:姓名:夏新民学号:专业班级: 1624601 系(院):理学院设计时间:三、酒店无线局域网组建酒店结构为回字形,分别时:E区有餐厅(一楼)国际会议厅(二楼)A区,商务客房158间B区,酒店接待(一楼);多功能厅(二楼)C区,标准客房300间国际会议厅,和每间客房都要设计信息点位。
我们采用星型网络拓扑结构来进行网络覆盖……………IntE区交换机(会议厅……) C区交换机(客房)防火墙服务器总交换机,A区交换机交换机(客房)B区交换机(接待、多功能厅)…………Internet网络结构酒店内部网络结构前台收银、中餐厅收银……Sisco2950交换机酒店管理服务器中心交换机Sisco2950交换机财务室,总结里办公室……所需设备:RJ45接头:(水晶头),双绞线:有三类(符合ieee802.3 10base-t,用于10m网已逐渐退出网络市场,只用于电话),五类、超五类(用于100m网)之分,集线器(hub),rj45口网络接口卡(nic):有10m,100m或10/100m自适应之分;交换机(100M)。
.客户机的网络配置:1)安装网卡2)2、添加tcp/ip协议(xp)安装tcp/ip协议。
在控制面板网络配置选项卡中单击“添加”按钮,从列表框中选中“协议”后再次单击“添加”按钮,然后在“厂商”列表框中选中“microsoft”,在“网络协议”列表框中选中“tcp/ip”,单击“确定”按钮并根据提示插入windows XP安装光盘即可完成。
当然,您需要重新启动计算机以便使新的设置生效。
在安装完windowsXP 已经成功安装TCP/IP.所以很少存在要求继续安装TCP/IP现象。
3)指定ip地址。
右击网上邻居点击“属性”出现“本地连接”继续右击:“本地连接”点击属性网络连通测试。
开始-运行——服务器的网络配置:1、专线接入internet,需要安装两块网卡,例如3com网卡连局域网,dlink网卡连广域网;3、用交叉网线将dlink网卡与路由器直连可以节省一个hub。
目录一.课程的目的和任务 (3)二.课程的基本内容和要求 (3)2.1实验理论 (3)2.2实验内容 (3)1.常用网络命令 (3)2.交换机与路由器 (17)3.网络编程 (30)三.课程设计总结体会 (36)一.课程的目的和任务本课程要求学生在“计算机网络原理”理论学习基础上,验证和加深对计算机网络概念的理解。
通过本课程的实践,培养学生独立思考、综合分析和动手实践的能力。
通过本课程的学习,达到如下目标:(1). 理解计算机网络体系结构和工作原理,掌握常用的网络命令,能够对命令的功能进行解释,分析命令执行结果,得到合理有效结论。
(2). 掌握Packet Tracer软件的操作方法,能够使用该软件模拟组网、配置交换机、路由器,能够按照实验方案实施仿真实验,采集和整理数据。
(3). 具备网络编程能力,能够设计抓包程序获取数据包,结合相关协议对数据包各个字段的含义进行分析、处理和解释,获取有效结论。
二.课程的基本内容和要求2.1实验理论1.常用网络命令的工作原理及协议2. ARP的原理3.ICMP协议及原理4.telnet远程登录的原理5.IP报文格式及路由转发6.以太网CSMA/CD协议原理7.透明网桥、以太网交换机8.虚拟局域网VLAN9.路由器的作用、静态路由、动态路由10.IP报文格式及IP协议11. Socket网络编程2.2实验内容1.常用网络命令要求在Windows环境下掌握ipconfig,ping,netstat,tracert,arp,telnet进行网络状态监测、跟踪的方法。
(a).ipconfigipconfig的功能:可用于显示本机所有当前的TCP/IP配置的设置值,刷新动态主机配置协议(DHCP),以及域名系统设置(DNS)。
1.不带参数的ipconfig该命令用于查看适配器的IP地址子网掩码等属性图中可以看到以太网适配器IP地址10.136.6.220,其子网掩码255.255.240.02.带参数的ipconfig(1).ipconfig/all该命令用于查看适配器的IP地址,子网掩码等属性,较不带参数的ipconfig多了显示MAC地址,下图可以看到各个组件的物理地址,与ipconfig 相比较更为详细(2).ipconfig/renew 即重新获取IP地址(3).ipconfig/release该命令用于释放即归还所有适配器的IP地址,与不带参数的ipconfig相比较,以太网适配器,即网卡的的IP地址没有显示,说明已被释放(b)pingping命令的作用用于检查网络是否连通,到某个目的地址是否可达,可以帮助分析网络故障ping命令的原理基于ICMP协议,PING使用了回送请求与回送回答报文。
--- - 实 验 报 告 实验名称 :计算机网络课程设计 学生姓名 : xxxxxxxxxxxxxxx 专业: xxxxxxxxxxxxxxx 班级: xxxxxxxxxxxxxxx 学号: xxxxxxxxxxxxxxx 指导教师 :xxxxxxxxxxxxxxx 实验成绩 : 实验地点 : 实验时间 : 2016 年 5 月 6 日 ---
- 一、实验目的与实验要求 1、实验目的 将书本上抽象的概念与具体实现技术结合,通过网络软件编程的实践,深入 理解理论课上学习到的 ARP、IP、TCP 等重要网络协议的原理,通过自己动手 编程封装与发送这些数据包, 加深对网络协议的理解, 掌握协议帧的结构和工作 原理及其对协议栈的贡献。
2、实验要求 网络课程设计包含两个部分的内容: 题目一是数据包的封装发送和解析( ARP/IP/TCP),要求使用 Winpcap 技术 和 Socket 技术,根据 ARP/IP/TCP 帧的结构,封装数据包发送到局域网中。另外要捕获网络中的 TCP/IP/ARP 数据包,解析数据包的内容,并将结果显示,并同时写入日志文件。
题目二是从可选题目中选择一个,可选题目均是网络应用小程序,要求小组 使用网络编程技术设计并实现一个网络应用程序, 加深对网络协议协的理解, 并 锻炼网络编程能力。
二、实验设备(环境)及要求 1、实验硬件设备: 计算机型号:联想 ThinkPad T430u
处理器型号: Intel i5 主频: 1.8Hz 网卡型号: (1)Realtek PCIe GBE (2)Broadcom 802.11n
2、实验软件要求: 操作系统: Windows10 --- - 应用软件: Visual Studio 2015 Pro 3、小组成员及分工:
三、实验内容与步骤 1、实验 1:数据包的封装发送和解析( ARP/IP/TCP) (1)实验内容 1) 程序目标: 根据 IP 帧的结构,封装 IP 数据包发送到局域网中。 并捕获网络中的 IP 数据包,
解析数据包的内容,并将结果显示,并同时写入日志文件。 2) 程序功能:以命令行形式运行
在标准输出中显示捕获的 IP 报文的首部字段的内容。使用 winpcap 访问网卡,手动封装
定义 IP 首部的数据结构
填充数据包,发送数据包,捕获数据包使用 winpcap,捕获 IP 数据包
(2)主要步骤 1) 总体设计: a. 获取设备列表并打印,打开所选择的适配器;
b. 准备工作:定义 ip 相关的结构体、打开要存放结果的文件,设置过滤器,手写 ip 数据报(内容有无效的 MAC 源和目的地址, 和均为本机地址的 ip 源地址和目的地址,即发给自己一个 ip 报文),设置抓到数据报的解析和输出到文件的操作函数(解析 ip 报,打印并写入文件:报文的版本、协议、源和目 --- - 的地址等)。 c. 发包、抓包。 d. 分析获取的数据。
获取设备列表
打开选择适配器 过滤数据包 解析数据包 2) 具体实现:
#define HAVE_REMOTE #include "pcap.h" #include "remote-ext.h" #include "stdio.h" #include "stdlib.h" /*4 字节的 IP 地址 */ typedef struct ip_address{ u_char byte1; u_char byte2; u_char byte3; u_char byte4; }ip_address; /*IPv4 首部 */ typedef struct ip_header{ --- - u_char ver_ihl; //版本( 4bits) +首部长度( 4bits)
u_char tos; //服务类型
u_short tlen; // 总长类型
u_short identification; // 标识
u_short flags_fo; //标志位 +段偏移量
u_char ttl; // 存活时间 u_char proto; //协议 u_short crc; //首部校验和 ip_address daddr; //目的地址 ip_address saddr; //源地址 u_int op_pad; // 选项与填充 }ip_header;
void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data); /* packet handler 函数原型 */
void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data);
int main() { pcap_if_t *alldevs; pcap_if_t *d; int inum; int i=0; pcap_t *adhandle; char errbuf[PCAP_ERRBUF_SIZE]; u_int netmask; char packet_filter[] = "ip"; // 抓包类型 --- - pcap_dumper_t *dumpfile; /* 获取本机设备列表 */
if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) == -1) { fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf); exit(1); }
/* 打印适配器列表 */
for(d=alldevs; d; d=d->next) { printf("%d. %s", ++i, d->name); if (d->description) printf(" (%s)\n", d->description); else printf(" (No description available)\n"); }
if(i==0) { printf("\nNo interfaces found! Make sure WinPcap is installed.\n"); return -1; }
printf("Enter the interface number (1-%d):",i); scanf("%d", &inum);
if(inum < 1 || inum > i) { --- - printf("\nInterface number out of range.\n"); /* 释放设备列表 */
pcap_freealldevs(alldevs); return -1; }
/* 跳转到选中的适配器 */
for(d=alldevs, i=0; i< inum-1 ;d=d->next, i++);
/* 打开设备 */
if ( (adhandle= pcap_open(d->name, // 设备名 65536,// 65535 保证能捕获到不同数据链路层上每个数据包的全部内容 PCAP_OPENFLAG_PROMISCUOUS, // 混杂模式
1000, // 读取超时时间
NULL, // 远程机器验证
errbuf ) ) == NULL) // 错误缓冲池
{ fprintf(stderr,"\nUnable to open the adapter. %s is not supported by WinPcap\n", d->name); /* 释放设备列表 */
pcap_freealldevs(alldevs); return -1; }
/* 打开堆文件 */ dumpfile = pcap_dump_open(adhandle, "D:\\save.txt");
if(dumpfile==NULL) { --- - fprintf(stderr,"\nError opening output file\n"); return -1; } /* 检查数据链路层,只考虑以太网 */
if(pcap_datalink(adhandle)!=DLT_EN10MB) { fprintf(stderr, "nThis program works only on Ethernet networds.n"); /* 释放设备列表 */
pcap_freealldevs(alldevs); return -1; }
if(d->addresses != NULL) //获得接口第一个地址的掩码 netmask = ((struct sockaddr_in *)(d->addresses->netmask))->sin_addr.S_un.S_addr; else //如果接口没有地址,那么我们假设一个 C 类的掩码 netmask=0xffffff; //编译过滤器 if(pcap_compile(adhandle,&fcode,packet_filter,1,netmask)<0) { fprintf(stderr,"nUnable to compile the packet filter. Check the syntax.n"); //释放设备列表 pcap_freealldevs(alldevs); return -1; } //设置过滤器 if(pcap_setfilter(adhandle,&fcode)<0) { fprintf(stderr,"nError setting the filter.n");