网络合约协议分析获取并解析ARP

合集下载

实验1ARP协议分析实验

实验1ARP协议分析实验

实验1ARP协议分析实验本次实验的目标是分析ARP(Address Resolution Protocol)协议,探索其工作原理和在局域网中的应用。

ARP协议是在网络通信中用于解析IP地址和MAC地址之间映射关系的协议。

实验步骤如下:1.确保实验环境中有两台主机,可以通过交换机或路由器相连组成一个局域网。

主机A和主机B分别作为发送方和接收方。

2. 打开Wireshark或其他网络抓包工具,以便捕获在局域网中的ARP消息。

3. 在主机A上打开命令行终端,执行命令“arp -a”可以查看主机上已经记录的ARP缓存。

4. 在主机B上设置一个IP地址,例如192.168.1.2,并使用ping命令向主机A发送一个ARP请求,命令如下: ping 192.168.1.15. 在Wireshark中,选择相应的网卡接口开始抓包。

然后在主机B上执行ARP请求,捕获所有的ARP交换数据包。

6. 分析捕获的数据包,在Wireshark中选择第一个ARP请求数据包,可以看到源MAC地址是主机B的MAC地址,目标MAC地址是广播地址(FF:FF:FF:FF:FF:FF)。

7. 接下来,在Wireshark中选择第一个ARP响应数据包,可以看到源MAC地址是主机A的MAC地址,目标MAC地址是主机B的MAC地址。

8.分析ARP响应中的信息,可以得出主机A和主机B之间的IP地址和MAC地址的映射关系。

9. 在主机A上使用ping命令向主机B发送一个ARP请求,然后在Wireshark中捕获所有的ARP数据包。

10. 在Wireshark中分析捕获到的ARP请求和响应数据包,比较与主机B向主机A发送ARP请求时的数据包有何不同。

实验结果分析:在实验中,我们通过ARP协议实现了IP地址与MAC地址之间的映射关系,通过抓包分析发现,当主机B向主机A发送ARP请求时,主机A会发送一个ARP响应来回应请求。

在ARP响应中,主机A会提供自己的MAC地址,供主机B进行记录。

ARP协议详解ARP报文结构

ARP协议详解ARP报文结构

ARP协议详解ARP报文结构ARP协议详解与ARP报文结构ARP(Address Resolution Protocol,地址解析协议)是一个重要的网络协议,用于将IP地址与MAC地址相互映射。

在局域网中,每个主机都有一个唯一的IP地址和MAC地址,而ARP协议则负责通过目标IP地址获取对应的MAC地址,从而实现数据包的正确传输。

一、ARP工作流程ARP的工作流程可以简单概括为以下几个步骤:1. 发送ARP请求:源主机A在发送数据包时,会先检查目标主机B的IP地址是否与自己在同一局域网中,如果不是,则需要获取目标主机的MAC地址。

A会根据目标主机的IP地址构建一个ARP请求包(ARP Request),该包中包含源主机A的IP地址、MAC地址以及目标主机的IP地址。

然后,A会将ARP请求包广播发送到局域网中的所有主机。

2. 接收ARP请求:局域网中的其他主机收到ARP请求包后会进行筛选,只有与ARP请求包中的目标IP地址相同的主机会继续处理。

3. 发送ARP响应:局域网中的目标主机B收到ARP请求包后会将自己的MAC地址信息封装在一个ARP响应包(ARP Reply)中,并发送给源主机A。

该ARP响应包中包含目标主机B的IP地址、MAC地址以及源主机A的IP地址。

4. 更新ARP缓存表:源主机A收到ARP响应包后会将目标主机B的IP地址与其对应的MAC地址映射关系添加到本地的ARP缓存表中,以备将来使用。

5. 数据传输:当主机A获取到目标主机B的MAC地址后,就可以将待发送的数据包封装在以太网帧中,通过局域网将数据包传输给目标主机B。

二、ARP报文结构ARP报文结构包括以下字段:1. 硬件类型(Hardware Type):占2字节,表示硬件接口类型,例如以太网。

2. 协议类型(Protocol Type):占2字节,表示网络协议类型,例如IPv4或IPv6。

3. 硬件地址长度(Hardware Address Length):占1字节,表示源和目标MAC地址的长度,通常为6(以太网中的MAC地址长度)。

实验四:ARP分析及路由协议分析解析

实验四:ARP分析及路由协议分析解析

►►计算机网络实验与学习指导基于Cisco Packet Tracer模拟器计算机科学与技术学院计算机网络实验报告年级2013 学号2013434151 姓名汪凡成绩专业计算机科学与技术实验地点C1-422 指导教师常卓实验项目实验3.3:ARP分析实验3.5:路由协议分析实验日期2016/5/6实验3.3:ARP分析一、实验目的1.掌握基本的ARP命令。

2.熟悉ARP报文格式和数据封装方式。

3.理解ARP的工作原理。

二、实验原理(1)ARP简介1.什么是ARPARP,即地址解析协议。

TCP/IP网络使用ARP实现IP地址到MAC地址的动态解析。

网络层使用逻辑地址(IP地址)作为互联网的编址方案,但实际的物理网络(以太网)采用硬件地址(MAC地址)来唯一识别设备。

因此在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址(MAC地址)。

①ARP工作原理每个主机和路由器的内存中都设有一个ARP高速缓存,用于存放其他设备的IP地址到物理地址的映射表。

当主机欲向本局域网上其他主机发送IP包时,先在本地ARP缓存中查看是否有对方的MAC地址信息。

如果没有,则ARP会在网络中广播一个ARP请求,拥有该目标IP地址的设备将自动发回一个ARP回应,对应的MAC地址将记录到主机的ARP缓存中。

考虑到一个网络可能经常有设备动态加入或者撤出,并且更换设备的网卡或IP地址也都会引起主机地址映射发生变化,因此,ARP缓存定时器将会删除在指定时间段内未使用的ARP条目,具体时间因设备而异。

例如,有些Windows操作系统存储ARP缓存条目的时间为2mim但如果该条目在这段时间内被再次使用,其ARP定时器将延长至lOmin。

ARP缓存可以提高工作效率。

如果没有缓存,每当有数据帧进入网络时,ARP都必须不断请求地址转换,这样会延长通信第3章网络层协议实验螭◄◄时间,甚至造成网络拥塞。

反之,保存时间过长也可能导致离开网络或者更改第3层地址的设备出错。

ARP协议分析实验报告

ARP协议分析实验报告

ARP协议分析实验报告ARP(Address Resolution Protocol)协议是一种解决网际协议(IP)地址与物理硬件地址(MAC地址)之间转换的协议。

本次实验旨在分析ARP协议的工作原理和过程,并通过使用网络抓包工具Wireshark来捕获并分析ARP协议的数据包。

1.实验背景与目的2.实验步骤a)搭建网络环境:搭建一个基本的局域网环境,包括一个路由器和几台主机。

b) 启动Wireshark:在一台主机上启动Wireshark网络抓包工具。

c)发送ARP请求:使用另一台主机向目标主机发送ARP请求,获取目标主机的IP地址与MAC地址的对应关系。

d) 抓取数据包:在Wireshark中捕获并保存ARP协议的数据包。

e)分析数据包:打开捕获的数据包,分析数据包中的ARP请求和应答。

3.实验结果与分析实验中,我们使用两台主机进行测试,主机A的IP地址为192.168.1.100,MAC地址为00:11:22:33:44:55,主机B的IP地址为192.168.1.200,MAC地址为AA:BB:CC:DD:EE:FF。

a)ARP请求过程:主机A通过ARP协议发送ARP请求,询问主机B的MAC地址,具体操作为发送一个以太网帧,目标MAC地址为广播地址FF:FF:FF:FF:FF:FF,目标IP地址为主机B的IP地址192.168.1.200。

主机B收到ARP请求后,通过ARP应答将自己的MAC地址发送给主机A。

b)ARP应答过程:主机B收到ARP请求后,生成一个ARP应答数据包,将自己的MAC地址AA:BB:CC:DD:EE:FF作为回应发送给主机A。

主机A接收到ARP应答后,将主机B的IP地址与MAC地址的对应关系存储在本地ARP缓存中,以便于下次通信时直接使用。

4.结论与意义ARP协议作为解决IP地址与MAC地址转换的关键协议,在计算机网络中起着重要的作用。

本实验通过抓包分析ARP协议的工作过程,深入理解了ARP协议的原理和应用场景。

网络协议分析获取并解析ARP

网络协议分析获取并解析ARP

成绩:网络协议分析报告题目:获取并解析网络中的ARP数据包学院:计算机科学与技术学院专业:计算机科学与技术班级:0411203学号:2012211699姓名:李传根一、要求及功能编程序,获取网络中的ARP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件.运行格式:程序名日志文件二、原理及方法2.0什么是ARP地址解析协议(Address Resolution Protocol,ARP)是在仅知道主机的IP地址时确定其物理地址的一种协议。

因IPv4和以太网的广泛应用,其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDIIP网络中使用.从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。

ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。

在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址.而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。

这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。

于是需要一种方法,根据目的主机的IP地址,获得其MAC地址.这就是ARP协议要做的事情。

所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。

另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。

所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的某个端口的MAC地址。

于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。

这种情况称为ARP代理(ARP Proxy)。

地址解析协议ARP命令

地址解析协议ARP命令

地址解析协议ARP命令地址解析协议(ARP)是计算机网络中的一种协议,用于将一个IP地址映射到相应的MAC地址。

MAC地址是一个唯一的硬件地址,用于在局域网中唯一标识一个网络设备。

当一个设备需要将数据发送给另一个设备时,它需要知道目标设备的MAC地址。

ARP命令是用来执行地址解析协议操作的命令工具。

ARP命令主要用于在计算机网络中查询和缓存MAC地址。

具体来说,ARP命令可以执行以下操作:1.查询指定IP地址的MAC地址:ARP命令可以用来查询特定IP地址对应的MAC地址。

通过在命令行中输入"arp -a"命令,系统将会显示本地主机的ARP缓存表,包含了目标IP地址对应的MAC地址以及相关信息。

2.清除ARP缓存表:在一些情况下,ARP缓存表可能会出现不正确的条目,导致设备之间无法正确通信。

此时,可以使用ARP命令清除ARP缓存表。

在命令行中输入"arp -d"命令,系统将会清除本地主机的ARP缓存表。

3.添加静态ARP条目:静态ARP条目是手动添加到ARP缓存中的,用于指定一些IP地址对应的MAC地址。

在命令行中输入"arp -s <IP地址> <MAC地址>"命令,系统将会添加一个静态ARP条目到ARP缓存中。

4.修改ARP缓存表的超时时间:ARP缓存表中的每个条目都有一个超时时间,默认情况下为两分钟。

如果需要修改超时时间,可以使用ARP命令。

在命令行中输入"arp -s <IP地址> <MAC地址> temp"命令,系统将会将指定的ARP条目设置为临时条目,不受超时时间限制。

5.刷新ARP缓存表:在一些情况下,需要手动刷新ARP缓存表,以确保其中的条目是最新的。

在命令行中输入"arp -d *"命令,系统将会删除所有ARP条目并重新查询。

总结来说,ARP命令是一种非常有用的工具,可以用来查询、清除和添加ARP缓存表中的地址解析条目。

ARP地址解析流程

ARP地址解析流程

ARP地址解析流程地址解析协议(ARP)是一种网络协议,用于将IP地址转换为物理MAC地址。

在计算机网络中,数据通过IP地址在网络上进行通信,但实际的数据包是由物理MAC地址承载的。

因此,为了实现正确的数据传输,就需要将目标IP地址转换为对应的MAC地址。

这就是ARP协议的任务。

1.获取目标IP地址:设备A要发送数据包给设备B,首先需要知道设备B的IP地址。

设备A在数据包中指定目标IP地址为设备B的IP地址。

2.判断目标IP地址是否在本地网络:设备A需要先判断目标IP地址是否在同一局域网中。

如果目标IP地址与设备A的IP地址不在同一网络中,设备A会将数据包发送给默认网关(路由器)。

如果目标IP地址与设备A的IP地址在同一网络中,则继续下一步。

3.查找ARP缓存表:设备A会在本地的ARP缓存表中查找是否有与目标IP地址对应的MAC地址。

ARP缓存表记录了设备在最近的通信中收集到的IP和MAC地址的映射关系。

如果ARP缓存表中有对应的条目,则设备A可以直接使用该MAC地址进行通信,跳到第6步。

如果ARP缓存表中没有对应的条目,则继续下一步。

4.发送ARP请求广播:设备A会在本地网络中发送一个广播ARP请求,请求目标设备的MAC地址。

ARP请求包含了设备A的MAC地址、IP地址和目标IP地址。

设备A将ARP请求通过乙太网广播给所有设备,包括设备B。

5.接收ARP请求并回应ARP响应:设备B接收到设备A的ARP请求后,会检查自己的IP地址是否与请求包中的目标IP地址匹配。

如果匹配,则设备B将自己的MAC地址包含在ARP响应中,并将该响应发送给设备A。

其他设备接收到ARP请求后会根据IP地址进行匹配,不匹配则忽略该请求。

6.更新ARP缓存表:设备A收到设备B的ARP响应后,将设备B的IP地址与MAC地址的映射关系记录在本地ARP缓存表中,以便将来的通信使用。

设备A使用设备B的MAC地址将数据包发送给设备B。

arp解析协议工作原理

arp解析协议工作原理

arp解析协议工作原理ARP(Address Resolution Protocol)解析协议是一种用于将IP 地址解析为物理MAC地址的网络协议。

在网络通信中,数据包的发送需要知道目标主机的MAC地址,而ARP协议就是负责在IP 地址和MAC地址之间建立对应关系的。

ARP解析协议的工作原理可以分为以下几个步骤:1. ARP缓存查询:当主机A要发送数据包给主机B时,首先会在自己的ARP缓存中查找是否已经存在主机B的IP地址到MAC地址的映射。

如果存在,则可以直接使用该MAC地址进行数据包发送。

2. ARP广播请求:如果在ARP缓存中没有找到目标主机的MAC地址映射,主机A将发送一个ARP广播请求,该请求会被发送到局域网内的所有主机。

广播请求中包含了主机A的IP地址和MAC地址,以及目标主机B的IP地址。

3. 目标主机响应:收到ARP广播请求的目标主机B会检查请求中的IP地址是否与自己的IP地址相符。

如果相符,主机B将发送一个ARP响应给主机A,包含自己的IP地址和MAC地址。

4. ARP缓存更新:主机A收到主机B的ARP响应后,会将主机B 的IP地址和MAC地址添加到自己的ARP缓存中,以便下次发送数据包时直接使用。

同时,主机B也会将主机A的IP地址和MAC 地址添加到自己的ARP缓存中。

5. 数据包发送:在完成ARP解析后,主机A就知道了主机B的MAC地址,可以将数据包封装成以太网帧,并通过局域网发送给主机B。

需要注意的是,ARP解析协议是基于局域网的,只能在同一网络中进行。

当主机A和主机B不在同一网络中时,需要通过网关进行通信。

在这种情况下,主机A发送ARP请求时的目标IP地址会是网关的IP地址,网关会根据自己的ARP缓存来回复ARP响应。

ARP解析协议并没有提供安全机制,攻击者可以通过伪造IP地址和MAC地址来进行ARP欺骗攻击。

为了防止ARP欺骗攻击,可以使用静态ARP表、动态ARP检测等手段来提高网络的安全性。

抓包arp报文解析

抓包arp报文解析

抓包arp报文解析****在计算机网络的世界中,抓包和报文解析是网络诊断和调试的重要手段。

ARP(Address Resolution Protocol)报文作为IP地址与MAC地址转换的关键,了解其结构和解析方法对于网络管理人员和技术爱好者来说至关重要。

本文将详细介绍如何抓取ARP报文并进行解析。

---**抓包ARP报文解析**### 1.抓取ARP报文首先,我们需要使用抓包工具来捕获网络中的ARP报文。

Wireshark是最常用的抓包工具之一,以下是其基本操作步骤:- 下载并安装Wireshark。

- 打开Wireshark,选择正确的网络接口开始捕获数据包。

- 在过滤栏输入`arp`以只显示ARP相关的报文。

- 进行网络活动(如尝试ping另一台设备),以触发ARP请求和响应。

### 2.ARP报文结构一旦捕获到ARP报文,我们可以看到它包含以下主要字段:- **硬件类型(Hardware Type)**:指明网络硬件的类型,例如以太网为0x01。

- **协议类型(Protocol Type)**:通常为IPv4,其值为0x0800。

- **硬件地址长度(Hardware Address Length)**:指硬件地址的长度,以太网MAC地址长度为6。

- **协议地址长度(Protocol Address Length)**:指IP地址的长度,IPv4地址长度为4。

- **操作码(Opcode)**:标识ARP请求(1)或ARP响应(2)。

- **发送者硬件地址(Sender Hardware Address)**:发送方的MAC 地址。

- **发送者协议地址(Sender Protocol Address)**:发送方的IP地址。

- **目标硬件地址(Target Hardware Address)**:接收方的MAC地址(在ARP请求中通常为全0)。

- **目标协议地址(Target Protocol Address)**:接收方的IP地址。

arp协议的解析过程

arp协议的解析过程

arp协议的解析过程ARPA(地址解析协议)是一种局域网(LAN)协议,它用于将IP 地址转换为物理地址,即MAC地址。

它还可以识别本地网络中的主机,并检查网络上其他主机的存在。

许多网络协议都使用ARP来完成地址解析功能,包括TCP/IP、IPX和AppleTalk。

ARP协议的解析过程非常简单,但很有效。

当一台计算机想要发送一个数据包到另一台计算机时,它会发送一个广播ARP请求。

此广播ARP请求是一个使用广播通信机制的数据包,其中包含了发送方和接收方的IP地址。

每个网络上的主机都会收到此ARP请求,但只有接收方才会回复一个ARP应答,以及它的MAC地址。

发送方收到ARP 应答后,就可以用它的MAC地址继续发送数据包。

ARP协议建立在其他协议的基础上运行,并有效地解析IP地址到MAC地址。

ARP使用什么样的协议取决于本地网络的连接类型。

如果本地网络是基于以太网的,它会使用以太网ARP(Ethernet ARP)协议。

而如果本地网络是基于令牌环的,它会使用令牌环ARP(Token Ring ARP)协议。

无论使用哪种协议,ARP协议解析这样的步骤都是一样的:发送ARP请求,接收ARP应答,然后用收到的MAC地址发送数据包。

为了更有效地使用ARP协议,大多数系统都支持ARP缓存(也称为ARP表)。

一旦计算机接收到ARP应答,它就会把接收方的IP地址和MAC地址保存到ARP缓存中。

以后,它就会检查ARP缓存,而不是发送新的ARP请求,以节省网络带宽。

在局域网内,每个主机的ARP缓存列表大致相同,但是当此主机发送数据包到Internet时,它的ARP缓存列表就完全不同了,因为Internet上的每个主机都有一个不同的IP地址。

ARP协议也被用于防止ARP欺骗,也称为ARP伪造。

ARP伪造是一种攻击方法,允许攻击者伪造网络中其他主机的IP地址,以便解除网络上数据的传输权限。

比如,当攻击者伪装成另一台连接到网络的计算机时,就可以收集他人的网络数据包。

ARP协议地址解析协议的作用与原理

ARP协议地址解析协议的作用与原理

ARP协议地址解析协议的作用与原理ARP(Address Resolution Protocol)协议是互联网中的网络协议之一,用于将IP地址转换为物理地址。

它在计算机通信中起到了至关重要的作用。

本文将介绍ARP协议的作用与原理,并探讨其在网络通信中的应用。

一、ARP协议的作用ARP协议的主要作用是通过将IP地址与相应的物理地址(MAC地址)进行关联,实现在局域网中IP地址到MAC地址的转换。

具体而言,ARP协议扮演了以下几个方面的角色:1. IP地址与MAC地址的映射在计算机通信过程中,数据包使用IP地址进行寻址,而以太网中则需要使用MAC地址进行传输。

ARP协议通过查询局域网中其他主机的IP地址和MAC地址映射表,实现IP地址到MAC地址的转换,从而确保数据包能够正确地传递到目标主机。

2. 解决网络中的冲突在一个局域网中,多台主机可能会使用相同的IP地址,这将导致冲突和通信故障。

ARP协议通过定期发送ARP请求来解决这个问题。

当主机检测到IP地址冲突时,会通过ARP协议发送一个广播请求,要求具有该IP地址的主机回应。

通过这种方式,可以及时发现和解决网络中的IP地址冲突问题。

3. 提高网络通信效率ARP协议支持局域网上主机的缓存功能,即主机会将其它主机的IP 地址和MAC地址的映射关系存储在缓存中。

这样一来,当主机需要与某个目标主机通信时,可以直接从缓存中获取目标主机的MAC地址,避免了频繁的ARP查询操作,提高了网络通信的效率。

二、ARP协议的工作原理ARP协议的工作原理可以分为四个步骤:地址解析、地址解析请求、地址解析回应和缓存。

1. 地址解析当一个主机需要与另一个主机进行通信时,发送的数据包中包含目标主机的IP地址。

本地主机首先会检查自身的ARP缓存,查找是否有与目标主机IP地址对应的MAC地址。

如果有,则直接将数据包发送给目标主机;如果没有,则进入下一步。

2. 地址解析请求如果本地主机的ARP缓存中没有目标主机的MAC地址,那么它将发送一个广播的ARP请求帧到局域网内的所有主机。

网络协议之ARP协议原理及应用

网络协议之ARP协议原理及应用

网络协议之ARP协议原理及应用ARP协议原理及应用一、协议原理ARP(Address Resolution Protocol)是一种用于将IP地址解析为物理地址的协议。

在计算机网络中,每个设备都有一个唯一的物理地址(MAC地址)和一个逻辑地址(IP地址)。

而ARP协议的作用就是通过逻辑地址获取对应的物理地址。

ARP协议的工作原理如下:1. 当主机A需要与主机B通信时,首先会检查本地的ARP缓存表,查看是否已经有主机B的MAC地址记录。

如果有,则直接使用该MAC地址进行通信。

2. 如果ARP缓存表中没有主机B的MAC地址记录,主机A就会发送一个ARP请求广播,该广播会包含主机A的IP地址和MAC地址,并请求其他主机回复自己的MAC地址。

3. 其他主机收到ARP请求后,会检查自己的IP地址是否与请求中的目标IP地址相同。

如果相同,则会向主机A发送一个ARP响应,包含自己的IP地址和MAC地址。

4. 主机A收到ARP响应后,会将主机B的IP地址和MAC地址添加到ARP缓存表中,并使用该MAC地址进行通信。

5. 主机A和主机B之间的通信就可以通过MAC地址进行。

二、协议应用ARP协议在计算机网络中有广泛的应用,以下是一些常见的应用场景:1. IP地址解析:ARP协议通过将IP地址解析为MAC地址,实现了不同设备之间的通信。

在局域网中,主机之间的通信离不开ARP协议的支持。

2. 网络扫描:网络扫描工具常常使用ARP协议来获取局域网内的设备信息。

通过发送ARP请求广播,扫描工具可以获取到局域网内所有设备的IP地址和MAC地址。

3. ARP欺骗检测:ARP欺骗是一种网络攻击手段,攻击者通过发送伪造的ARP响应,将自己的MAC地址伪装成其他设备的MAC地址,从而实现对网络流量的监控或篡改。

为了检测和防止ARP欺骗,可以使用ARP协议进行MAC地址的验证和比对。

4. 路由器转发:在路由器中,ARP协议被用于转发数据包。

ARP协议分析实验报告

ARP协议分析实验报告

ARP协议分析实验报告实验目的:对ARP协议进行深入分析,了解其工作原理和应用场景。

实验过程:1. ARP(Address Resolution Protocol)是一种用于将IP地址映射到MAC地址的网络协议。

在进行ARP分析前,我们先了解一下ARP的基本原理。

2.当主机A要发送数据包给主机B时,需要知道主机B的MAC地址。

主机A会先在本地ARP缓存中查找主机B的MAC地址。

如果缓存中没有记录,则主机A会发送一个ARP请求广播到局域网上,请求主机B的MAC地址。

3.主机B收到ARP请求后,会向主机A发送一个ARP响应,其中包含自己的MAC地址。

4.主机A收到主机B的ARP响应后,会将主机B的MAC地址记录在ARP缓存中,并将数据包发送给主机B。

5. 在本次实验中,我们使用Wireshark工具对ARP协议进行抓包分析。

通过查看抓包数据,我们可以了解ARP协议的详细过程和相关字段。

实验结果:1.在抓包数据中,我们可以看到ARP请求和ARP响应的数据包。

ARP 请求包中包含了发送方的MAC地址、IP地址、目标IP地址等信息。

ARP 响应包中包含了目标的MAC地址。

2. 我们可以通过Wireshark工具查看每个ARP数据包的详细信息,包括源MAC地址、目标MAC地址、源IP地址、目标IP地址等字段。

3.我们还可以观察到ARP实际通信的过程,包括ARP请求广播和ARP响应的单播。

4.通过对ARP协议的抓包分析,我们可以更加深入地了解ARP的工作原理和实际应用。

实验结论:1.ARP协议是一种重要的网络协议,用于解决IP地址到MAC地址的映射问题。

在局域网中,ARP协议是实现数据传输的基础。

2.通过对ARP协议的抓包分析,我们可以了解ARP协议的具体实现过程,包括ARP请求和ARP响应的细节。

3.ARP协议在网络通信中起着至关重要的作用,了解其工作原理对我们理解网络通信机制和故障排查都是非常有帮助的。

4.在今后的网络实验中,我们可以继续对其他重要协议进行深入研究和分析,提升我们对网络通信的理解和掌握程度。

实验一ARP协议实验结果分析

实验一ARP协议实验结果分析

实验一ARP协议实验结果分析ARP(Address Resolution Protocol)是一种网络协议,它用于将IP地址转换成物理地址(MAC地址)。

在计算机网络中,ARP协议是实现IP地址与MAC地址互相映射的重要工具。

本文将分析一个ARP协议实验的结果,以便更好地理解ARP协议的工作原理和作用。

实验一:ARP协议实验ARP协议实验旨在模拟和观察ARP协议的工作过程,并分析实验结果。

实验过程包括两台计算机的通信和网络数据包的传输。

下面将详细介绍实验的步骤和结果。

步骤一:实验设置首先,我们需要搭建一个小型网络环境,包括两台计算机和一个交换机。

两台计算机分别为计算机A和计算机B,它们通过交换机相连。

计算机A的IP地址为192.168.1.100,MAC地址为00:11:22:33:44:55;计算机B的IP地址为192.168.1.200,MAC地址为AA:BB:CC:DD:EE:FF。

步骤二:ARP请求过程在第一次通信时,当计算机A需要与计算机B进行通信时,它首先会检查本地的ARP缓存表,以确定目标IP地址对应的MAC地址是否已经存在。

这里假设该MAC地址不存在。

因为ARP缓存表没有记录,计算机A需要发送一个ARP请求数据包,以获取计算机B的MAC地址。

ARP请求数据包包含了计算机A 的MAC地址、IP地址以及目标IP地址。

当该ARP请求数据包到达交换机时,交换机将其广播到网络中的所有主机。

步骤三:ARP应答过程当计算机B收到ARP请求数据包后,它会检查自己的IP地址是否与请求中的目标IP地址相匹配。

如果匹配成功,计算机B将会发送一个ARP应答数据包给计算机A。

ARP应答数据包包含了计算机B的MAC地址。

此时,交换机会将该ARP应答数据包从广播状态切换为单播状态,并将其仅发送给计算机A。

步骤四:ARP缓存更新计算机A在收到ARP应答数据包后,会将计算机B的IP地址与MAC地址的映射关系添加到本地的ARP缓存表中。

网络协议之ARP协议原理及应用

网络协议之ARP协议原理及应用

网络协议之ARP协议原理及应用ARP协议原理及应用一、协议简介ARP(Address Resolution Protocol)是一种网络协议,用于将IP地址映射到物理MAC地址。

它是在局域网中实现IP地址与MAC地址之间的转换和映射的重要协议。

本文将详细介绍ARP协议的原理和应用。

二、协议原理1. ARP协议的作用ARP协议的主要作用是解决在局域网中,当主机A需要向主机B发送数据时,如何获取主机B的物理MAC地址。

因为在局域网中,数据包是通过物理MAC地址进行传输的。

2. ARP协议的工作流程(1)主机A发送ARP请求广播包:主机A首先发送一个ARP请求广播包,该包中包含了主机A的IP地址和MAC地址,以及目标主机B的IP地址。

(2)交换机转发ARP请求广播包:当交换机接收到ARP请求广播包时,会将该包广播给局域网中的所有主机。

(3)主机B响应ARP请求:主机B接收到ARP请求广播包后,检查目标IP地址是否与自己的IP地址匹配。

如果匹配,则主机B会发送一个ARP响应包给主机A,该包中包含了主机B的IP地址和MAC地址。

(4)交换机转发ARP响应包:当交换机接收到ARP响应包时,会将该包转发给主机A。

(5)主机A缓存ARP响应:主机A收到ARP响应包后,会将主机B的IP地址和MAC地址存储在本地ARP缓存中,以便将来发送数据时直接使用。

3. ARP协议的缓存机制为了提高ARP协议的效率,主机在收到ARP响应包后会将IP地址和MAC地址的映射关系存储在本地ARP缓存中。

这样,在将来需要发送数据时,就可以直接从缓存中获取对应的MAC地址,而不需要再发送ARP请求广播包。

4. ARP协议的更新机制为了保证ARP缓存中的映射关系的实时性,ARP协议会定期发送ARP请求广播包来更新缓存中的映射关系。

当缓存中的映射关系过期时,主机会发送ARP请求广播包,以获取最新的映射关系。

三、协议应用1. IP地址解析ARP协议主要用于解析IP地址和MAC地址之间的映射关系。

网络协议 - ARPRARP应用分析

网络协议 - ARPRARP应用分析

图2中,ARP报头里的操作类型字段值为1,说明这个ARP数据包是一个ARP请求,源主机的硬件地址是00:A1:B0:05:14:15,IP地址是192.168.2.44,它将此ARP请求广播到当前网段上的所有主机,期望获得IP地址192.168.2.1所对应的硬件地址。

(图3 ARP响应数据包)图3中,ARP报头里的操作类型字段值为2,说明这个ARP数据包是一个ARP响应,源主机的硬件地址是00:E0:4E:10:F9:4C,IP地址是192.168.2.1,目标主机硬件地址是00:A1:B0:05:14:15,目标IP是192.168.2.44。

此数据包是一个单播数据包,表示IP地址为192.168.2.1的主机告诉192.168.2.44自己的硬件地址是00:E0:4E:10:F9:4C。

RARP流程再次使用科来网络分析系统5.0跟踪分析一个RARP的通讯过程,一个正常的RARP通讯也包括RARP请求和RARP响应两部分。

图4 RARP请求数据包)图4中,RARP报头里的操作类型字段值为3,说明这个RARP数据包是一个RARP请求,源主机的硬件地址是00:A1:B0:05:14:15,但源主机并不知道自己的IP地址,于是置为0.0.0.0,源主机也不知道RARP服务器的硬件地址和IP地址,将RARP服务器的地址置为自己的硬件地址,IP地址置为0.0.0.0。

并将此RARP请求广播到当前网段上的所有主机,期望获得硬件地址00:A1:B0:05:14:15对应的IP地址。

(图5 RARP响应数据包)图5中,RARP报头里的操作类型字段值为4,说明这个RARP数据包是一个RARP响应,源主机的硬件地址是00:E0:4E:10:F9:4C,IP地址是192.168.2.1,目标主机硬件地址是00:A1:B0:05:14:15,目标IP是192.168.2.44。

此数据包是一个单播数据包,表示IP地址为192.168.2.1的RARP服务器告诉硬件地址为00:A1:B0:05:14:15的主机可以使用的IP地址是192.168.2.44。

地址解析协议ARP实验报告

地址解析协议ARP实验报告

地址解析协议ARP实验报告一、实验目的地址解析协议(Address Resolution Protocol,ARP)是在网络层中用于将 IP 地址转换为物理地址(MAC 地址)的重要协议。

本次实验的主要目的是深入理解 ARP 协议的工作原理和机制,通过实际操作和观察,掌握 ARP 数据包的格式和内容,以及 ARP 缓存的作用和更新过程。

二、实验环境本次实验在一个由多台计算机组成的局域网环境中进行,操作系统为 Windows 10。

使用 Wireshark 网络协议分析工具来捕获和分析网络中的数据包。

三、实验原理ARP 协议的基本工作原理是:当一台主机需要向另一台主机发送数据时,如果它不知道目标主机的 MAC 地址,它会广播一个 ARP 请求数据包,请求目标主机返回其 MAC 地址。

网络中的其他主机收到该请求后,如果不是目标主机,则忽略该请求;如果是目标主机,则会向发送请求的主机返回一个ARP 响应数据包,告知其自己的MAC 地址。

发送请求的主机收到响应后,将目标主机的 IP 地址和 MAC 地址的对应关系存储在本地的 ARP 缓存中,以便后续通信使用。

四、实验步骤1、打开 Wireshark 软件,并选择用于捕获数据包的网络接口。

2、在其中一台主机上,使用 Ping 命令向另一台主机发送 ICMP 回显请求数据包,以触发 ARP 协议的运行。

3、在 Wireshark 中停止捕获数据包,并对捕获到的数据包进行筛选,只显示 ARP 协议相关的数据包。

4、分析 ARP 请求数据包和 ARP 响应数据包的格式和内容,包括硬件类型、协议类型、硬件地址长度、协议地址长度、操作码、发送方的 MAC 地址和 IP 地址、目标方的 MAC 地址和 IP 地址等。

5、观察本地主机的 ARP 缓存,查看其中存储的 IP 地址和 MAC 地址的对应关系,并记录其变化情况。

五、实验结果与分析1、 ARP 请求数据包硬件类型:表示网络硬件的类型,通常为以太网,值为 1。

简述ARP协议功能与作用,并抓包分析

简述ARP协议功能与作用,并抓包分析

ARP协议功能与作用ARP,即地址解析协议,实现通过IP地址得知其物理地址。

在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。

为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。

这样就存在把IP地址变换成物理地址的地址转换问题。

以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为48位以太网的地址。

这就需要在互连层有一组服务将IP地址转换为相应物理地址。

抓包结果:ARP请求报文ARP应答报文分析1.ARP请求报文从截图中可以看出1:硬件类型(hardware type)是以太网(0x0001)。

2:协议类型(protocol type)为0x0800,表示使用ARP的协议类型为IPV4。

3:硬件地址长度(hardware size)为6。

4:协议地址长度(protocol size)为4,操作类型(opcode)为0x0001,表示报文类型为ARP请求。

5:发送方硬件地址(sender MAC address)为20:89:84:7f:35:ee,定义了发送方的硬件地址。

6:发送方协议地址(sender IP address)为192.168.139.11,定义发送方的协议地址。

7:目的硬件地址(target MAC address)为00:0f:e2:a5:f1:4f。

8:目的协议地址(target IP address)为192.168.139.254,定义目的设备的协议地址。

2.ARP应答报文1:硬件类型为以太网。

2:协议类型为IP(0x0800)。

3:硬件地址长度为6。

4:协议地址长度为4,操作类型为2(0x0002),表示为ARP应答报文。

5:发送方硬件地址为00:0f:e2:a5:f1:4f6:发送方IP地址为192.168.139.2547:目的硬件地址为20:89:84:7f:35:ee8:目的协议地址为192.168.139.11。

网络协议分析——抓包分析 TCP、UDP、ARP、HTTP协议

网络协议分析——抓包分析  TCP、UDP、ARP、HTTP协议

网络协议分析——抓包分析班级:021231学号:姓名:目录一、TCP协议分析-------------------------------2二、UDP协议分析-------------------------------6三、ARP协议分析-------------------------------12四、HTTP协议分析------------------------------16一、TCP协议分析1.TCP协议:1.TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、基于IP的传输层协议,由IETF的RFC 793说明(specified)。

TCP在IP报文的协议号是6。

2.功能当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。

之后TCP把数据包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。

TCP为了保证报文传输的可靠[1] ,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。

然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。

在数据正确性与合法性上,TCP用一个校验和函数来检验数据是否有错误,在发送和接收时都要计算校验和;同时可以使用md5认证对数据进行加密。

在保证可靠性上,采用超时重传和捎带确认机制。

在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。

2.抓包分析:运输层:源端口:占2个字节。

00 50(0000 0000 0101 0000)目的端口:占2个字节。

f1 4c(1111 0001 0100 1100)序号:占4个字节。

arp协议分析

arp协议分析

arp协议分析ARP协议分析。

ARP(Address Resolution Protocol)地址解析协议是用来将IP地址转换为MAC地址的网络协议。

在局域网中,当一台计算机需要与另一台计算机通信时,它需要知道目标计算机的MAC地址,而ARP协议就是用来解决这个问题的。

本文将对ARP协议进行分析,包括其工作原理、报文格式以及常见问题等内容。

ARP协议的工作原理是通过广播的方式进行的。

当一台计算机需要知道另一台计算机的MAC地址时,它会向局域网内发送一个ARP请求报文,询问目标IP地址对应的MAC地址。

其他计算机收到该ARP请求后,如果发现自己的IP地址与请求中的目标IP地址相符,就会向发送ARP请求的计算机回复一个ARP应答报文,其中包含自己的MAC地址。

这样,发送ARP请求的计算机就可以得到目标IP地址对应的MAC地址了。

ARP协议的报文格式包括了多个字段,其中最重要的是目标IP地址和目标MAC地址。

当一台计算机发送ARP请求时,它会在报文中指定目标IP地址,而接收到该请求的计算机则会在ARP应答报文中填写自己的MAC地址。

此外,报文中还包括了发送方IP地址、发送方MAC地址等字段,这些字段都是为了建立起IP地址与MAC地址之间的映射关系。

在实际应用中,ARP协议也会遇到一些常见问题。

其中最常见的问题之一就是ARP欺骗攻击。

ARP欺骗攻击是指攻击者发送虚假的ARP应答报文,使得其他计算机将攻击者的MAC地址误认为是某个特定IP地址对应的MAC地址,从而导致通信数据被发送到错误的目的地。

为了防范ARP欺骗攻击,可以采取一些安全措施,比如使用静态ARP绑定、ARP检测工具等。

除了ARP欺骗攻击外,ARP协议还可能遇到其他问题,比如ARP缓存溢出、ARP风暴等。

这些问题都会影响网络的正常运行,因此需要及时采取相应的措施来解决。

综上所述,ARP协议是局域网中非常重要的一个协议,它通过将IP地址转换为MAC地址,实现了计算机之间的通信。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

成绩: 网络协议分析报告题目:获取并解析网络中的ARP数据包学院:计算机科学与技术学院专业:计算机科学与技术班级:0411203学号:2012211699姓名:李传根一、要求及功能编程序,获取网络中的ARP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。

运行格式:程序名日志文件二、原理及方法2.0什么是ARP地址解析协议(Address Resolution Protocol,ARP)是在仅知道主机的IP地址时确定其物理地址的一种协议。

因IPv4和以太网的广泛应用,其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDIIP网络中使用。

从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。

ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。

在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。

而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。

这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。

于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。

这就是ARP协议要做的事情。

所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。

另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。

所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的某个端口的MAC地址。

于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。

这种情况称为ARP代理(ARP Proxy)。

2.1、ARP协议及工作原理ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。

在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。

在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。

但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。

所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。

ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC 地址,以保证通信的顺利进行。

ARP的基本运行过程:1、主机A希望发送数据分组给主机B,但不知道B的物理地址。

2、A发送广播报文,要求B主机用用他的物理地址来响应。

3、网站上所有的主机都接收到这个分组。

4、B识别自己的IP地址,发送响应报文,告诉A自己的物理地址。

2.2、ARP 的分组格式图一 ARP分组格式图二物理帧头图三 ARP帧结构2.3工作原理源主机在传输数据前,首先要对数据进行封装,在该过程中会把目的主机的IP地址和MAC地址封装进去。

在通信的初始阶段,我们能够知道目的主机的IP 地址,而MAC地址是不知道的。

这时如果目的主机和源主机在同一网络内,源主机会以第二层广播的方式发送ARP请求报文。

ARP请求报文中含有源主机的IP地址和MAC地址,以及目的主机的IP地址。

当报文通过广播的方式到达目的主机时,目的主机会响应请求报文,并返回ARP响应报文,从而源主机就可以获得目的主机的MAC地址,同样目的主机也可以获得源主机的MAC地址。

如果目的主机和源主机地址不在同一个网络中,源主机发送的IP数据包会送到交换机的默认网关,而默认网关的MAC地址同样可以通过ARP协议获取。

经过ARP协议解析IP地址之后,主机会在缓存中保存IP地址和MAC地址的映射条目,此后再进行数据交换只要从缓存中读取映射条目即可。

2.4 ARP包的填充将命令行的参数作适当的转换后填到ARP分组结构的个字段中即可。

要注意的是,填充请求包时,因为包要在Ethernet上广播,所以,物理帧头的“目的MAC”字段要填充为FFFFFFFFFFFF;而ARP帧结构中的目的MAC可填充任意值,因为它此时不起作用。

“填充数据”字段要填充为0。

三、源程序核心函数说明#include<conio.h>#include<fstream.h>#include<iomanip.h>#include"pcap.h"#include<winsock2.h>#pragma comment(lib,"ws2_32.lib")#pragma comment(lib,"wpcap.lib")//定义ARP包数据struct arppkt{unsigned short hdtyp; //硬件类型unsigned short protyp; //协议类型unsigned char hdsize; //硬件地址长度unsigned char prosize; //协议地址长度unsigned short op; //(操作类型)操作值: ARP/RARP u_char smac[6]; //源MAC地址u_char sip[4]; //源IP地址u_char dmac[6]; //目的MAC地址u_char dip[4]; //目的IP地址};void packet_handler(const pcap_pkthdr *header,const u_char *pkt_data,ostream& out){//从ARP包中找到头部位置arppkt* arph = (arppkt *)(pkt_data +14);//输出源IP地址for(int i=0;i<3;i++)out<<int(arph->sip[i])<<'.';out.setf(ios::left);out<<setw(3)<<int(arph->sip[3])<<" ";out.unsetf(ios::left);//输出源MAC地址char oldfillchar=out.fill('0');out.setf(ios::uppercase);for(i=0;i<5;i++)out<<hex<<setw(2)<<int(arph->smac[i])<<'-';out<<hex<<setw(2)<<int(arph->smac[5])<<" ";out.fill(oldfillchar);out.unsetf(ios::hex|ios::uppercase);//输出目的IP地址for(i=0;i<3;i++)out<<int(arph->dip[3])<<'.';out.unsetf(ios::left);out<<setw(3)<<int(arph->dip[3])<<' ';out.unsetf(ios::left);//输出目的MAC地址out.fill('0');out.setf(ios::uppercase);for(i=0;i<5;i++)out<<hex<<setw(2)<<int(arph->dmac[i])<<'-';out<<hex<<setw(2)<<int(arph->dmac[5])<<" ";out.fill(oldfillchar);out.unsetf(ios::hex|ios::uppercase);//输出操作类型out<<ntohs(arph->op)<<" ";//输出操作时间struct tm *ltime;ltime=localtime(&header->_sec);out.fill('0');out<<ltime->tm_hour<<':'<<setw(2)<<ltime->tm_min<<':'<<setw(2)<<l time->tm_sec;out.fill(oldfillchar);out<<endl;}void main(int argc,char *argv[ ])//命令行参数{//检查输入命令格式if(argc!=2){cout<<"Please input command: ParseArp output_file"<<endl;return;}//初始化网络设备相关参数pcap_if_t *alldevs;pcap_if_t *d;pcap_t *adhandle;char errbuf[PCAP_ERRBUF_SIZE];u_int netmask;char packet_filter[]="ether proto \\arp";struct bpf_program fcode;struct pcap_pkthdr *header;const u_char *pkt_data;//获取网络设备列表if(pcap_findalldevs(&alldevs,errbuf)==-1){cout<<"Error in pcap_find all devs:"<<errbuf;return;}//选取一个Ethernet网卡for(d=alldevs;d;d=d->next){// 网卡设为混杂模式,接收所有帧if((adhandle=pcap_open_live(d->name,1000,1,300,errbuf))==NULL) {cout<<"\nUnable to open the adapter.";pcap_freealldevs(alldevs);return;}//检查数据链路是否为Ethernetif(pcap_datalink(adhandle)==DLT_EN10MB&&d->addresses!=NULL) break;}if(d==NULL){cout<<"\nNo interfaces found! Make sure Winpcap is installed.\n"; return;}//获得子网掩码netmask=((sockaddr_in*)(d->addresses->netmask))->sin_addr.S_un.S_addr;//编译过滤器,只捕获ARP包if(pcap_compile(adhandle,&fcode,packet_filter,1,netmask)<0){ cout<<"\nUnable to compile the packet filter.Check the syntax.\n"; pcap_freealldevs(alldevs);return;}//设置过滤器if(pcap_setfilter(adhandle,&fcode)<0){ cout<<"\nError setting the filter.\n";pcap_freealldevs(alldevs);return;}//显示提示信息及每项含义cout<<"listening on "<<d->description<<"..."<<endl<<endl;ofstream fout(argv[1],ios::app); //日志记录文件//为了查看日志时的方便,其中加入了日期记录time_t t;time(&t);fout.seekp(0,ios::end);if(fout.tellp()!=0)fout<<endl;fout<<"\t\tARP request(1)/reply(2) on"<<ctime(&t);cout<<"Sour Ip Addr"<<" "<<"Sour MAC Address" <<" "<<"Des Ip Addr"<<" "<<"Des MAC Address"<<" "<<"OP"<<" "<<"Time"<<endl; fout<<"Sour Ip Addr"<<" "<<"Sour MAC Address" <<" "<<"Des Ip Addr"<<" "<<"Des MAC Address" <<" "<<"OP"<<" "<<"Time"<<endl; //释放设备列表pcap_freealldevs(alldevs);//开始截获ARP包int result;while((result=pcap_next_ex(adhandle,&header,&pkt_data))>=0){ //循环解析ARP数据包if(result==0)continue;//解析ARP包,结果输出到屏幕与文件packet_handler(header,pkt_data,cout);packet_handler(header,pkt_data,fout);}}四、实验环境及平台搭建操作系统:windows 8运行环境:Microsoft Visual C++ 6.0开发包:wincap SDK,以及最新platform SDK的一些库文件1.把wincap SDK里面的库文件以及lib包含到源程序中,避免包含wincap 头文件时出现找不到头文件的错误具体方法:在菜单栏中->工具->选项—>目录,然后选择include要包含的库的路径2.下载最新platform SDK里面的部分库文件strsafe.h,然后添加到vc6.0安装目录里面的include文件夹里面,源程序需要用到这个头文件,但是vc6.0里面没有这个开发语言:C语言,C++五、实验结果及分析实验结果:相关扩展与分析:算法和代码提示:调用socket()打开协议簇为PF_PACKET的原始套接字,这样我们就可以收到数据链路帧:int fd = socket(PF_PACKET,SOCK_RAM,htons(ETH_P_ALL));对打开的套接字调用ioct1(),将网卡设置为混杂模式,这样我们就可以接受到局域网中所有的包(包括目的地址不是本机的帧):struct ifreq req;memset (&req,0,sizeof(req));strncpy(req.ifr_name,”eth0”,strlen(“eth0”)+1);ioctl(fd,SIOCGIFFLAS,&req);req.ifr_flags|=IFF_PROMISC; //设置为混杂模式icotl(fd, SIOCGIFFLAGS,&req);利用recvfrom()接收包:recvform(fd,buffer,sizeof(buffer),0,(struct sockaddr *)&from,&from_len);接收到包后,判断是否为ARP包,若是ARP包则进行处理,否则丢弃。

相关文档
最新文档