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(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协议的原理和应用场景。

协议数据包的捕捉与分析

协议数据包的捕捉与分析

协议数据包的捕捉与分析在现代网络通信中,协议数据包的捕捉与分析是一项重要的技术。

通过捕捉和分析数据包,我们可以深入了解网络通信的细节,发现潜在的问题,并进行性能优化。

本文将讨论协议数据包的捕捉与分析的方法和应用。

一、数据包捕捉的方法数据包捕捉是指在网络通信过程中,拦截并记录数据包的内容和相关信息。

常见的数据包捕捉方法有两种:被动捕捉和主动捕捉。

被动捕捉是指通过监听网络接口或交换机端口,将经过的数据包复制并记录下来。

这种方法不会对网络通信产生干扰,适用于对整个网络流量进行全面监控和分析。

被动捕捉可以使用专门的硬件设备,也可以通过软件实现,如Wireshark等。

主动捕捉是指通过发送特定的请求,获取网络中的数据包。

这种方法需要主动参与网络通信,可以有针对性地捕捉特定协议或特定主机的数据包。

主动捕捉常用于网络安全领域的入侵检测和攻击分析。

二、数据包分析的工具数据包捕捉只是第一步,对捕捉到的数据包进行分析才能发现其中的有用信息。

数据包分析的工具有很多,常用的有Wireshark、tcpdump、tshark等。

Wireshark是一款功能强大的开源数据包分析工具,支持多种协议的解析和显示。

它可以将捕捉到的数据包按照协议、源IP地址、目的IP地址等进行过滤和排序,方便用户快速定位感兴趣的数据包。

tcpdump是一款命令行工具,可以实时捕捉和显示网络数据包。

它支持多种过滤条件,可以根据协议、端口、源IP地址等进行过滤。

tcpdump输出的数据包可以导入Wireshark等图形化工具进行进一步分析。

tshark是Wireshark的命令行版本,可以在服务器等无图形界面的环境中使用。

它支持Wireshark的大部分功能,可以通过命令行参数和过滤条件进行数据包的捕捉和分析。

三、数据包分析的应用数据包分析在网络管理和网络安全中有广泛的应用。

以下是一些常见的应用场景:1. 故障排查:当网络出现故障时,通过分析数据包可以确定故障的原因和位置。

网络协议分析获取并解析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协议解码详解

ARP工作原理和ARP协议解码详解ARP(Address Resolution Protocol,地址解析协议)是一种用于解决IP地址和MAC地址之间映射关系的协议。

在电子网络中,数据通过IP地址进行传输,而以太网的数据帧则使用MAC地址进行传输。

ARP协议的作用就是通过IP地址查找对应的MAC地址,以便在发送数据时能够正确地通过以太网传输。

ARP的工作原理可以分为两个阶段:请求阶段和应答阶段。

在请求阶段,当主机A想要发送数据给主机B时,首先检查本地ARP缓存中是否有主机B的IP地址对应的MAC地址。

如果有,则直接使用该MAC地址;如果没有,则会发送一个ARP请求广播到局域网上的所有主机。

这个广播包会包含主机A的IP和MAC地址,请所有收到广播包的主机回答自己的IP和MAC地址。

在应答阶段,主机B收到主机A发送的ARP请求广播后,会检查广播包中的目标IP地址是否与自己的IP地址相同。

如果相同,则会将自己的IP和MAC地址添加到ARP应答包中,并发送给主机A。

主机A收到主机B的应答后,会将主机B的IP和MAC地址添加到本地ARP缓存中。

这样,在主机A发送数据时,就可以通过ARP协议查找到主机B的MAC地址,然后将数据封装为以太网帧,以目标MAC地址为主机B的MAC地址发送出去。

需要注意的是,ARP协议是工作在网络层以太网的协议,不仅支持IPv4地址的解析,还支持IPv6地址的解析。

此外,ARP协议是基于局域网的,只能解析同一片段中的IP地址和MAC地址的映射关系。

ARP协议的解码可以通过抓包工具来实现。

Wireshark是一款常用的网络抓包工具,在Wireshark中可以看到ARP协议的详细信息。

解码ARP协议的步骤如下:1. 打开Wireshark,点击开始捕获按钮,开始抓包。

2.选择要抓取的网络接口,点击开始捕获按钮。

3. 过滤ARP协议,只显示与ARP协议相关的数据包。

可以在过滤框中输入"arp",点击过滤按钮。

arp数据包课程设计

arp数据包课程设计

arp数据包课程设计一、课程目标知识目标:1. 学生能理解ARP协议的基本原理和ARP数据包的结构;2. 学生能掌握ARP数据包在网络通信中的作用和重要性;3. 学生能了解ARP欺骗和防护措施。

技能目标:1. 学生能够使用抓包工具捕获和分析ARP数据包;2. 学生能够配置网络设备以防止ARP欺骗;3. 学生能够运用所学知识解决简单的网络通信故障。

情感态度价值观目标:1. 培养学生对计算机网络通信的兴趣和好奇心;2. 增强学生的网络安全意识,使其养成良好的网络行为习惯;3. 培养学生合作学习、积极探索的精神。

课程性质:本课程为计算机网络通信领域的实践性课程,旨在帮助学生掌握ARP数据包的相关知识,提高实际操作能力。

学生特点:本课程针对的是高年级学生,他们已经具备一定的计算机网络知识基础,对实际操作和案例分析有较高的兴趣。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,通过案例分析和实际操作,使学生更好地理解和掌握ARP数据包的相关知识。

在教学过程中,注重培养学生的实际操作能力和网络安全意识。

课程目标分解为具体的学习成果,以便后续的教学设计和评估。

二、教学内容1. 引言:回顾计算机网络基础知识,引出ARP协议的作用和重要性。

教材章节:第一章 计算机网络基础2. ARP协议原理:- ARP数据包的结构与工作流程;- ARP缓存的更新机制。

教材章节:第二章 网络层协议3. ARP数据包分析:- 使用抓包工具捕获ARP数据包;- 分析ARP请求和应答数据包。

教材章节:第三章 网络协议分析4. ARP欺骗与防护:- ARP欺骗原理及常见攻击方式;- 防护措施及配置方法。

教材章节:第四章 网络安全5. 实际操作与案例分析:- 配置网络设备防止ARP欺骗;- 分析实际网络通信故障案例。

教材章节:第五章 网络设备配置与案例分析6. 总结与拓展:- 总结ARP数据包相关知识;- 探讨ARP协议在物联网等新兴领域的应用。

arp,ip,icmp协议数据包捕获分析实验报告数据

arp,ip,icmp协议数据包捕获分析实验报告数据

arp,ip,icmp协议数据包捕获分析实验报告数据篇一:网络协议分析实验报告实验报告课程名称计算机网络实验名称网络协议分析系别专业班级指导教师学号姓名实验成绩一、实验目的掌握常用的抓包软件,了解ARP、ICMP、IP、TCP、UDP 协议的结构。

二、实验环境1.虚拟机(VMWare或Microsoft Virtual PC)、Windows XX Server。

客户机A客户机B2.实验室局域网,WindowsXP三、实验学时2学时,必做实验。

四、实验内容注意:若是实验环境1,则配置客户机A的IP地址:/24,X为学生座号;另一台客户机B的IP地址:(X+100)。

在客户机A上安装EtherPeek(或者sniffer pro)协议分析软件。

若是实验环境2则根据当前主机A的地址,找一台当前在线主机B完成。

1、从客户机A ping客户机B ,利用EtherPeek(或者sniffer pro)协议分析软件抓包,分析ARP 协议;2、从客户机A ping客户机B,利用EtherPeek(或者sniffer pro)协议分析软件抓包,分析icmp协议和ip协议;3、客户机A上访问,利用E(转载于: 小龙文档网:arp,ip,icmp协议数据包捕获分析实验报告数据)therPeek(或者sniffer pro)协议分析软件抓包,分析TCP和UDP 协议;五、实验步骤和截图(并填表)1、分析arp协议,填写下表12、分析icmp协议和ip协议,分别填写下表表一:ICMP报文分析233、分析TCP和UDP 协议,分别填写下表4表二: UDP 协议 5篇二:网络层协议数据的捕获实验报告篇三:实验报告4-网络层协议数据的捕获实验报告。

ARP原理--抓包分析

ARP原理--抓包分析

环境:一台中文XP,一台英文XP,双机用交叉线直连.起Sniffer抓包观察.A:IP 10.1.1.1/8B:IP 11.1.1.1/81.无网关,A ping B,报Destination host unreachable.显然,A机器发现对方与自己不是同一网段,试图寻找网关,但网关不存在,所以报主机不可达,B上的Sniffer未抓到任何包,观察网卡也是只发不收.显然数据没有出去,也没有发生卷一上所说的ARP广播过程.2.网关设成对方IP,能正常PING通.为什么能通?从A计算机Sniffer上抓到的包可以看出,A在PING对方过程中,A首先进行了ARP广播,它广播询问11.1.1.1的MAC是什么!但这里有个问题,这个11.1.1.1到底指的是PING中指定的11.1.1.1还是网关中的11.1.1.1呢?先不管它,一会实验就明白了.反正此时的结果是A问11.1.1.1的MAC,显然这个ARP广播是可以被B收到的(为什么就不用说了吧),而11.1.1.1正好就是B的IP地址,理所当然B要回应这个ARP请求.下图是A上的SNIFFER,A首先进行了ARP广播,然后收到了B的应答.这样A就有了B的MAC,而B在接到A的ARP广播时候就学到A的MAC,所以双方可以PING通.3.网关设成自己,A PING 对方一样是通的,A上抓包如下:(抓到的结果与第2种情况一样,所以借用第2种情况的图),A依然是先广播询问11.1.1.1的MAC,这个ARP广播被B接到后,B有义务应答,于是双方知道对方MAC,所以能PING通.与第2种情况不同的是,这里可以明确知道ARP中的11.1.1.1指的是PING中所指定的IP地址而不是网关(此时A网关是10.1.1.1了),那么第2种情况中的11.1.1.1也指的是PING中所指定的IP ?做个实验4看看!4.网关设成自己,PING 3个不存在的IP,一个是和自己在同一网段的,一个是和网关在同一网段的,一个是和谁都不在同一网段的:4.1:PING和自己同一网段的IP,PING返回超时,在B上抓包结果如下:可以看出,A发出了询问10.1.1.2的ARP广播而不是询问网关(10.1.1.1)的广播,由于这个IP不存在,所以没有机器做出回应.4.2:PING和网关同一网段的IP,超时,B上接到的是A发出的关于11.1.1.2的ARP广播,由于不存在11.1.1.2这个地址,所以没有机器回应.图略.4.3:PING和谁都不在一个网段的IP,超时,B上接到是A发出的关于100.1.1.1的ARP广播,由于不存在100.1.1.1这个地址,所以没有机器回应.图略.从上面的3个付实验来看,当网关设置成自己的时候,不管PING的地址是什么,计算机发出的ARP广播都是直接询问PING中所指定IP对应的MAC,没有询问网关的MAC,这符合卷一上的描述,其实计算机在广播询问PING命令指定的IP之前还是会先问网关的MAC的,只是这里由于网关是自己所以这一步就被跳过了,到底是不是这样,继续做下面的实验来测试.5.A计算机网关设成B的IP地址,但B的网关设置成一个不存在的IP(且与A/B 都不在同一网络),PING实验4中的三种情况,5.1:PING与自己同一网段IP,抓包可以看到B上接到询问10.1.1.2的ARP广播,但10.1.1.2是不存在的IP,所以没有得到回应.5.2:PING与网关同一网段IP,在A上抓包,可以看到A首先发出了关于网关11.1.1.1的ARP广播请求(对应B接到这个广播请求,图略),B对这个11.1.1.1进行了ARP应答.但这个IP是不存在的所以PING结果超时.5.3:PING与谁都不在同一网段,超时,结果类似5.2结果,A发出了关于网关11.1.1.1的请求,B做了应答.但PING是超时的.5.4:PING计算机B的地址,结果超时,为什么这个也不通呢?按说按照上面的测试,AB计算机都能获得对方MAC,以太网下,有MAC应该就有通信的可能,可这个时候却不通,查看Sniffer抓到的包可以发现:A发出了关于11.1.1.1的ARP广播请求,B对11.1.1.1做出应答,但是下面接到了多个B发来的关于100.1.1.1的ARP广播请求,且100.1.1.1的回显请求没有得到B的应答.看来B是一直在试图查询B的网关(100.1.1.1)所对应的MAC,在网关的MAC没有获得应答之前,B不会对PING产生回应.从上面的所有实验看出,计算机在与非本网段的地址通信时,计算机首先查找网关的MAC,如果网关MAC得不到回应,是不会对PING作出响应的.因此,实现1和2的情况是属于特殊情况,正好利用了网关与主机IP相同,骗过了计算机.如果AB 的网关都设置的与ABip毫不相干的话,相互肯定不通.。

计算机网络课设ARP数据包的解析剖析

计算机网络课设ARP数据包的解析剖析

图1 ARP数据包的消息格式4课程设计分析1.设计分析:●硬件类型:指定硬件接口类型。

例如,值为1表示Ethernet●协议类型:指定发送方支持的上层协议的类型●物理地址长度:指定物理(硬件)地址的长度●协议地址长度:网络层协议的地址长度。

若为IP协议,其值为4●操作:指定ARP的操作类型,例如,1表示ARP请求,2表示ARP应答●源物理地址:指定发送方的IP地址●目的物理地址:指定目的物理地址。

●目的IP地址:指定目的IP地址ARP分组必须在数据链路层中被封装成侦,才能发送出去。

封装形式如图2所示:图2将ARP数据包封装成帧2.协议程序的选择及分析(1)程序中会用到Winpcap,Winpcap是Win32环境下数据包捕获的开放代码函数库。

基于Winpcap的应用程序一般按照下面几个步骤进行设计:输出网卡设备列表,选择网卡并打开, 捕获数据包时,可能需要设置过滤器,捕获数据包或者发送数据包。

(2)在程序设计过程中需要注意网络—主机字节顺序的转化。

由于不同的计算机系统所采用的数据表示方式不同,对于2B或4B的数据,有的采用低字节地址存放数据的高权值位,而有的却以低地址字节存放数据低权位值,在网络的数据传输中,我们应该统一表示,所以我们在捕获数据包后,应将数据包头部的表示长度或类型的数据转换成本地机的表达形式。

可以利用函数ntohs()将网络字节序转换为主机字节序。

(3)选择网卡并打开时,注意选择可用的网卡。

具体流程图如下:图3流程图5 程序代码#include<winsock2.h>#pragma comment(lib,"Ws2_32.lib") //用到ntobs()//等同于点击"project-setting-link"打开object/library module编辑框后加入文件#pragma comment(lib,"wpcap.lib")#include "pcap.h" //此头文件没有包含在VC中,需要另外加入#include<fstream.h>#include<iomanip.h> //格式化输出需要用到#include<conio.h> //用到_getch()//注意到接收的数据包头中代表类型,数据长度的字段采用的是big-endian//所以对于2B/4B的数据要用ntohs()转换为本机形式//ARP包结构struct arppkt{unsigned short hdtyp; //硬件类型.值0001unsigned short protyp;unsigned char hdsize;unsigned char prosize;unsigned short op;u_char smac[6];u_char sip[4];u_char dmac[6];u_char dip[4];};void packet_handler(const pcap_pkthdr *header,const u_char *pkt_data,ostream& out); void main(int argc,char *argv[ ]){if(argc!=2){cout<<"Usage:arpparse logfilename"<<endl;cout<<"press any key to continue."<<endl;_getch();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_findalldevs:"<<errbuf;return;}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;}if(pcap_datalink(adhandle)==DLT_EN10MB&&d->addressess!=NULL) break;}if(d==NULL){cout<<"\nNo interfaces found! Make sure Winpcap is installed.\n";return;}//获得子网掩码netmask=((sockaddr_in *)(d->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(ashandle,&fcode)<0){ cout<<"\nError setting the filter.\n";pcap_freealldevs(alldevs);return;}cout<<"\t\tlistening 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);int result;while((result=pcap_next_ex(adhandle,&header,&pkt_data))>=0){if(result==0)continue;packer_handler(header,pkt_data,cout);packet_handler(header,pkt_data,fout);}}void packet_handler(const pcap_pkthdr *header,const u_char *pkt_data,ostream& out) {arpkt* arph = (arppkt *)(pkt_data +14);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::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);for(i=0;i<3;i++)out<<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.fill(oldfillchar);out.unsetf(ios::hex|ios::uppercase);out<<ntohs(arph->op)<<" ";struct tm *ltime;ltime=localtime(&header->_sec);sout.fill('0');out<<ltime->tm_hour<<':'<<setw(2)<<ltime->tm_min<<':'<<setw(2)<<ltime->tm_sec;out.fill(oldfillchar);out<<endl;}6运行结果与分析运行结果图:图4运行结果图分析:如图在以太网中主机为了获取目的IP地址的MAC地址,将自己的IP地址以及MAC地址在以太网中广播出去,等待目的主机的回复,共执行了六次。

协议数据包的捕获与分析

协议数据包的捕获与分析

协议数据包的捕获与分析在网络通信中,协议数据包的捕获与分析是一项重要的技术,它可以帮助我们深入了解网络通信过程中传输的数据,并且可以用于网络故障排查、网络安全分析等方面。

本文将详细介绍协议数据包的捕获与分析的基本原理、常用工具以及实际应用案例。

一、协议数据包的捕获原理协议数据包的捕获是指通过网络抓包工具将网络通信过程中的数据包进行捕获和记录。

这些数据包包含了源IP地址、目的IP地址、源端口号、目的端口号、协议类型、数据长度等关键信息。

协议数据包的捕获原理主要有以下几个步骤:1. 网络接口监听:网络接口负责将数据包从网络中接收并传递给操作系统。

通过监听网络接口,我们可以获取到网络通信中的数据包。

2. 数据包过滤:根据用户的需求,可以设置过滤条件,只捕获符合条件的数据包。

例如,我们可以设置只捕获某个特定IP地址或者某个特定端口号的数据包。

3. 数据包存储:捕获到的数据包可以保存在本地磁盘上,供后续分析使用。

存储数据包时,可以选择不同的格式,如pcap、txt等。

二、常用的协议数据包捕获工具1. Wireshark:Wireshark是一款开源的网络抓包工具,支持多种操作系统,如Windows、Linux、macOS等。

它提供了直观的图形界面,可以捕获和分析网络数据包。

Wireshark支持多种协议的解析,包括TCP、UDP、HTTP、FTP等。

2. tcpdump:tcpdump是一款命令行工具,可以在Linux和Unix系统上进行协议数据包的捕获和分析。

它可以根据用户的需求设置过滤条件,捕获指定的数据包。

tcpdump提供了丰富的选项,可以对捕获到的数据包进行详细的分析。

3. tshark:tshark是Wireshark的命令行版本,可以在Windows、Linux、macOS 等系统上运行。

它可以捕获和分析网络数据包,并且可以将捕获到的数据包保存为pcap文件。

tshark支持多种协议的解析,可以根据用户的需求进行定制化配置。

arp实验总结

arp实验总结

arp实验总结ARP实验总结引言ARP(Address Resolution Protocol)是一种用于将IP地址映射到物理地址的协议。

在计算机网络中,ARP扮演着重要的角色,通过解析IP地址与MAC地址之间的关系,实现了数据包在局域网中的传输。

本文将总结一次ARP实验的过程和结果,并对实验中遇到的问题进行分析和探讨。

实验目的本次ARP实验的目的是通过Wireshark软件捕获局域网内的ARP数据包,并分析其中的协议字段,探究ARP协议的工作原理和应用场景。

实验步骤1. 配置实验环境:在一台主机上安装Wireshark软件,并连接到一个局域网中。

2. 启动Wireshark:打开Wireshark软件,选择对应的网卡接口,并开始捕获数据包。

3. 进行ARP请求:在另一台主机上发送一个ARP请求数据包,请求目标主机的MAC地址。

4. 捕获ARP数据包:Wireshark软件会立即捕获到发送的ARP请求数据包,并显示其详细信息。

5. 分析数据包:通过分析ARP数据包的各个字段,了解ARP协议的工作原理和数据包的结构。

6. 进行ARP响应:目标主机收到ARP请求后,会发送一个ARP响应数据包,包含自身的MAC地址。

7. 捕获ARP响应数据包:Wireshark软件会再次捕获到目标主机发送的ARP响应数据包,并显示其详细信息。

8. 分析数据包:通过分析ARP响应数据包的各个字段,进一步了解ARP协议的工作机制。

实验结果通过ARP实验,我们成功捕获到了ARP请求和响应数据包,并对其进行了详细的分析。

在ARP请求数据包中,源MAC地址为发送主机的MAC地址,目标MAC地址为全0,源IP地址为发送主机的IP地址,目标IP地址为目标主机的IP地址。

而在ARP响应数据包中,源MAC地址为目标主机的MAC地址,目标MAC地址为发送主机的MAC地址,源IP地址为目标主机的IP地址,目标IP地址为发送主机的IP地址。

实验三 网络数据的捕获与分析

实验三  网络数据的捕获与分析

淮海工学院计算机工程学院实验报告书课程名:《计算机网络》题目:实验三网络数据包的捕获与分析班级:学号:姓名:实验三网络数据包的捕获与分析一、实验目的和要求通过本次实验,了解协议编辑器及协议分析器的作用,并能通过对网络层协议数据包的编辑、发送、捕获、分析,掌握数据封装的格式和方法,能对捕获的数据包分析其数据链路层和网络层的首部。

二、实验内容1、利用协议编辑器编辑ARP协议数据包,并使用协议分析器捕获并分析之;2、利用协议编辑器编辑ICMP协议数据包,并使用协议分析器捕获并分析之;三、主要实验仪器及材料装有Windows 2003系统的计算机,局域网,协议编辑器软件和协议分析器软件。

四、实验步骤(需要抓图说明实验过程)(一)ARP协议数据包的编辑与捕获1、打开协议编辑器,编辑ARP协议数据包(先扫描主机,然后按需要设置协议类型(数据链路层首部)、源MAC地址、源IP地址、目的IP地址,并校验数据是否正确)2、打开协议分析器。

设置过滤条件,开启捕获报文。

3、返回协议编辑器发送一定数量的数据包;4、在协议分析其中停止捕获报文,并查看所捕获的报文。

(二)ICMP协议数据包的编辑与捕获1、打开协议编辑器,编辑ICMP协议数据包(先扫描主机,然后按需要设置协议类型(数据链路层首部和网络层首部分别设置)、源MAC地址、源IP地址、目的IP 地址、目的MAC地址,ICMP首部校验和、总长度,IP首部校验和,并校验数据是否正确)2、打开协议分析器。

设置过滤条件,开启捕获报文。

3、返回协议编辑器发送一定数量的数据包;4、在协议分析其中停止捕获报文,并查看所捕获的报文。

五、实验结果分析分别对ARP协议和ICMP协议所编辑的数据包和所捕获的数据包进行分析。

要求:对捕获的报文分析其数据链路层首部和网络层首部内容,并与所编辑的报文做比较。

六、实验小结。

协议数据包的捕捉与分析

协议数据包的捕捉与分析

协议数据包的捕捉与分析一、引言协议数据包的捕捉与分析是网络安全领域中非常重要的一项技术,它可以帮助我们深入了解网络通信过程中的数据流动以及潜在的安全风险。

本文将介绍协议数据包的捕捉与分析的基本概念、工具和步骤,并结合实例进行详细说明。

二、协议数据包的捕捉与分析的概念协议数据包的捕捉与分析是指通过网络抓包工具捕获网络通信过程中的数据包,并对其进行分析和解读的过程。

通过对数据包的捕捉与分析,我们可以了解网络通信的细节,包括通信双方的IP地址、端口号、通信协议、数据内容等信息。

同时,我们还可以通过分析数据包中的特征和模式,发现网络中的异常行为和潜在的安全风险。

三、协议数据包的捕捉与分析的工具1. Wireshark:Wireshark是一款开源的网络抓包工具,可以捕捉并分析多种协议的数据包。

它提供了直观的图形界面,可以显示捕获到的数据包的详细信息,并支持对数据包进行过滤和搜索。

2. tcpdump:tcpdump是一款命令行工具,可以在Linux系统上进行数据包的捕捉和分析。

它可以捕获网络接口上的数据包,并以文本形式输出,方便进一步的分析和处理。

3. tshark:tshark是Wireshark的命令行版本,可以在不使用图形界面的情况下进行数据包的捕捉和分析。

它支持与Wireshark相同的过滤和搜索功能,适用于需要自动化处理大量数据包的场景。

四、协议数据包的捕捉与分析的步骤1. 确定捕捉目标:首先,我们需要确定要捕捉和分析的网络通信目标。

可以是特定的IP地址、端口号或者整个网络接口。

2. 配置抓包工具:根据捕捉目标,我们需要配置相应的抓包工具。

例如,在Wireshark中,可以选择要捕捉的网络接口,设置过滤条件等。

3. 开始捕捉数据包:配置完成后,我们可以开始捕捉数据包。

在Wireshark中,可以点击"Start"按钮开始捕捉,或者使用tcpdump命令行工具执行相应的命令。

实验四 以太网ARP协议数据捕获与分析

实验四  以太网ARP协议数据捕获与分析

实验四以太网ARP协议数据捕获与分析按照下面各步骤完成实验,找出每个问题的答案(可参考问题后面的答案),加深理解,完成实验报告。

一、在一台连接到以太网的计算机上,不要有任何上网的操作,此时通过DU meter可以看到计算机的网络接口仍然有少量数据的发送与接受,这些数据是以太网上自动运行的各种管理协议的数据。

利用Wireshark 捕获这些数据流,从中找出ARP的数据帧,也可利用捕获过滤器或显示过滤器。

进行以下分析,并回答问题:1.从捕获到的ARP数据帧中读出ARP数据包的每个字段的内容结构。

从Wireshark的中部窗格中读出已经被解析翻译的数据含义,再从下部窗格中,读出ARP每个字段的十六进制数值。

2.捕获到的ARP数据包是封装在以太网帧中还是封装在IP数据包中?由此回答在TCP/IP参考模型的协议栈中,ARP协议层的下层协议是什么?ARP协议层的上层协议是什么?答:捕获到的ARP数据包是封装在以太网帧中。

ARP协议层的下层协议是数据链路层协议,无上层协议。

3.从捕获到的ARP数据包中,找出哪些是ARP的广播查询包?哪些包是ARP的应答包?答:在中部窗口的ARP协议旁边显示有request的是ARP的广播查询包,显示有reply的是ARP的应答包。

4.描述以太网计算机中本机ARP表的生成过程。

答:主机先向局域网发送一个有目的IP地址的arp request广播报文,而目的主机就会回应一个有MAC地址的arp reply的单播帧给源主机,最后源主机就将收到的应答中的mac地址保存在自己的arp缓存表里面。

5.以太网计算机在利用ARP协议自动生产ARP表的过程中,有没有防止欺骗的措施?答:没有防止欺骗的措施。

主机A无法判断主机B的应答是否是欺骗性的,因为主机A并不对发回ARP响应的主机B进行身份认证,而这正是ARP协议的漏洞。

6.叙述ARP协议的作用。

以太网中如果没有ARP协议,它能否传输IP数据包?答:ARP协议的作用是确定对应IP地址的网卡物理地址,以便传输数据包,如果没有ARP协议就不能传输IP数据包。

协议数据包的捕获与分析

协议数据包的捕获与分析

目录一、实习任务 (2)二、协议分析 (2)1、捕获ARP数据包,分析研究之............................................... 错误!未定义书签。

2、捕获ICMP数据包,分析研究之............................................. 错误!未定义书签。

3、捕获TCP数据包并分析 (5)4、捕获HTTP数据包并分析 (5)5、捕获DNS数据包并分析 (5)6、捕获DHCP数据包并分析 (5)三、总结 (17)一、实习任务1、捕获APR请求、应答数据包,分析其组成特征;弄清楚ARP协议的作用,对LAN内、LAN之间,APR是如何工作的?APR缓冲的内容如何保存与其作用?请求与应答包的区别。

2、捕获ICMP数据包,分析研究之;弄清楚ICMP数据包的分类、作用,捕捉Ping命令数据包,如何构成ICMP协议包,请示与应答包的区别,怎样传输的。

3、捕获TCP数据包并分析;捕获一对通信的TCP连接、数据传送、释放的整个过程,分析其三次握手连接、四次握手释放的会话过程中每一步通信的参数传送,以及可靠传输的实现。

4、捕获HTTP、DNS数据包,分析其构成;捕获本机浏览外部某一网站时的DNS、HTTP数据包,取DNS、HTTP典型数据包各一个,列出其应用层、传输层、IP层、数据链路层上各层上数据包相应参数,首部内容,并对感兴趣的部分进行深入分析。

5、捕获DHCP数据包,分析其构成;本机设置为自动获取IP地址,捕获本机的DHCP数据包,列出数据包包含的内容,并对其构成进行分析,检查数据包中是否包含本机需要的数据。

二、协议分析1、ARP协议分析(同一捕获方案得到的多个协议可以写在一起)(1)捕获方案利用Ethereal网络协议分析软件及PING命令发送请求可捕捉数据包。

(2)捕获数据包与协议分析数据包字段分析:ARP请求:字段值含义Hardware type 0x0001 硬件类型Protocol type 0x0800 协议类型Hardware size 6 硬件地址长度Protocol size 4 协议地址长度Opcode 0x0001 操作类型Sender MAC address 00:14:2a:69:c7:2c 源MAC地址Sender IP address 172.16.56.42 源协议地址Target MAC addess 00:00:00:00:00:00 目的MAC地址Target IP addess 172.16.59.217 目的协议地址ARP答应:(该表格应与截图对应)字段值含义Hardware type 0x0001 硬件类型Protocol type 0x0800 协议类型Hardware size 6 硬件地址长度Protocol size 4 协议地址长度Opcode 0x0002 操作类型Sender MAC address 00:14:2a:6e:4c:2f 源MAC地址Sender IP address 172.16.59.217 源协议地址Target MAC addess 00:14:2a:69:c7:2c 目的MAC地址Target IP addess 172.16.56.42 目的协议地址协议分析:(协议的工作过程如何在捕获到的数据包中体现)。

简述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。

协议数据包的捕获与分析

协议数据包的捕获与分析

协议数据包的捕获与分析一、引言协议数据包的捕获与分析是网络安全领域中的重要技术之一。

通过捕获和分析网络数据包,可以深入了解网络通信的细节和行为,帮助发现潜在的安全威胁和漏洞,并采取相应的措施加以防范和修复。

本文将详细介绍协议数据包的捕获与分析的标准格式和步骤。

二、标准格式协议数据包的捕获与分析的标准格式如下:1. 任务名称:协议数据包的捕获与分析2. 任务描述:通过使用网络分析工具,捕获指定网络接口上的数据包,并对捕获到的数据包进行详细的分析和解读。

3. 目标:深入了解网络通信的细节和行为,发现潜在的安全威胁和漏洞。

4. 步骤:a) 准备工作:选择合适的网络分析工具,如Wireshark等,并安装配置好所需的软件和硬件环境。

b) 捕获数据包:打开网络分析工具,选择要捕获的网络接口,开始捕获数据包。

c) 分析数据包:对捕获到的数据包进行详细的分析和解读,包括源IP地址、目的IP地址、协议类型、数据包大小等信息。

d) 解码协议:根据协议类型,对数据包进行解码,还原出原始的数据内容。

e) 分析行为:根据数据包的内容和行为,分析网络通信的细节和特征,发现潜在的安全威胁和漏洞。

f) 生成报告:将分析结果整理成报告,包括数据包的统计信息、协议的使用情况、异常行为的发现等。

g) 建议措施:根据分析结果,提出相应的建议措施,包括加强网络安全防护、修复漏洞、优化网络通信等方面的建议。

三、详细内容在协议数据包的捕获与分析过程中,需要进行以下详细内容的处理和分析:1. 数据包捕获:选择要捕获的网络接口,并使用网络分析工具开始捕获数据包。

可以根据需要设置过滤器,只捕获特定协议或特定源/目的IP地址的数据包。

2. 数据包分析:对捕获到的数据包进行详细的分析和解读。

可以查看数据包的源IP地址、目的IP地址、协议类型、数据包大小等信息,以及数据包的时间戳和传输状态等。

3. 协议解码:根据协议类型,对数据包进行解码,还原出原始的数据内容。

网络实验5ARP_IP_ICMP数据包捕获分析

网络实验5ARP_IP_ICMP数据包捕获分析

网络实验5ARP、IP、ICMP协议数据包捕获分析实验性质:综合型实验学时:2学时知识点:三种协议数据包的组成与分析【实验目的】1.掌握常见的三种协议数据包组成,通过捕捉到的数据分析验证;2.为同样方法分析高层协议数据包提供初步训练。

【实验原理】1.ARP数据包的组成在以太网中,链路层数据帧是以48位的MAC地址传输的,而互联网的IP分组在网际层是以32位的IP地址传输的。

IP分组通过网络接口层到达一个LAN时,由与LAN相连的路由器根据目的IP地址找出目的主机的MAC地址,然后按此MAC地址将数据帧递交给目的主机。

ARP协议的功能是:由目的IP地址找出目的MAC地址。

当本机ARP缓存中有目的IP与目的MAC对应表项时,直接利用;没有时则以广播方式发送ARP请求,LAN中的所有主机都会接收到这个请求数据包。

如果一个主机的IP地址和ARP请求中的目的IP地址相同,该主机会对这个请求数据包做出ARP应答,将其MAC地址发送给请求者。

这时,双方主机的ARP缓存中各自会增加一条对方的IP地址与MAC地址的映射表项,此表会定期刷新,以防止由于主机离线或网卡改变所造成的解析错误。

1.1 ARP报文格式:ARP或RARP报文是封装在以太网 V2帧中发送的,其组成如图5-1所示。

图5-1 ARP报文封装在以太网 V2帧中ARP报文中,有硬件类型、协议类型、MAC地址长度、协议地址长度,操作类型,源、目的主机的MAC地址与IP地址等信息,总长28字节,具体内容见图5-2。

图5-2 ARP报文的组成1.2 ARP缓存和ARP命令通过arp实用程序,可以对ARP高速缓存进行查看和管理。

ARP命令可以显示或删除ARP高速缓存中的IP地址与物理地址的映射表项,也可以添加静态表项。

arp命令(文本界面下)的格式如下:arp -a [IP地址] 显示地址映射表项,[ ]为可选项。

arp -g [IP地址] 功能与arp -a相同。

12—数据包截获分析ARP协议

12—数据包截获分析ARP协议

网络窃密、监听及防泄密技术ARP协议分析12号王立鹏ARP(AddressResolutionProtocol)地址解析协议用于将计算机的网络地址(IP地址32位)转化为物理地址(MAC地址48位)[RFC826]。

ARP协议是属于链路层的协议,在以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP地址。

内核(如驱动)必须知道目的端的硬件地址才能发送数据。

ARP的工作原理如下:1. 首先,每台主机都会在自己的ARP缓冲区(ARP Cache)中建立一个ARP列表,以表示IP地址和MAC地址的对应关系。

2. 当源主机需要将一个数据包要发送到目的主机时,会首先检查自己ARP列表中是否存在该IP地址对应的MAC地址,如果有﹐就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。

此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。

3. 网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。

如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个ARP响应数据包,告诉对方自己是它需要查找的MAC地址;4. 源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP 列表中,并利用此信息开始数据的传输。

如果源主机一直没有收到ARP响应数据包,表示ARP查询失败我的计算机IP地址是121.195.229.188,要执行这个命令:ping121.195.229.189。

该命令会通过ICMP 协议发送ICMP数据包。

该过程需要经过下面的步骤:1、应用程序构造数据包,该示例是产生ICMP包,被提交给内核(网络驱动程序);2、内核检查是否能够转化该IP地址为MAC地址,也就是在本地的ARP缓存中查看IP-MAC对应表;3、如果存在该IP-MAC对应关系,那么跳到步骤6;如果不存在该IP-MAC对应关系,那么接续下面的步骤;4、内核进行ARP广播,目的地的MAC地址是FF-FF-FF-FF-FF-FF,ARP命令类型为REQUEST(1),其中包含有自己的MAC地址;5、当121.195.229.189主机接收到该ARP请求后,就发送一个ARP的REPLY(2)命令,其中包含自己的MAC地址;6、本地获得121.195.229.189主机的IP-MAC地址对应关系,并保存到ARP缓存中;7、内核将把IP转化为MAC地址,然后封装在以太网头结构中,再把数据发送出去;使用arp-a命令就可以查看本地的ARP缓存内容,所以,执行一个本地的PING命令后,ARP缓存就会存在一个目的IP的记录了。

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

}
} {

编辑过滤器并设置过滤器,只捕获ARP数据 包
//获得子网掩码 netmask=((sockaddr_in *) (d->addresses->netmask))->sin_addr.S_un.S_addr; //调试过滤器,只捕获ARP包
if(pcap_compile(adhandle, &fcode,packet_filter,1,netmask) <0)
二、获取网卡列表
/* -1) get local devices */
if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING,NULL,&alldevs,errbuf) ==


{
fprintf(stderr,"Error in pcap_findalldevs_ex:%s\n",errbuf); exit(1);
以混乱模式打开网络设备
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); //释放设备列表
{ cout<<"\nUnable to compile the packet filter. Check the syntax.\n"; pcap_freealldevs(alldevs); return 0;
}
//设置过滤器 if (pcap_setfilter(adhandle, &fcode)<0) { cout<<"\nError setting the filter.\n"; pcap_freealldevs(alldevs); return 0; } cout<<"\t\tlistening on "<<d->description<<"..."<<endl<<endl; ofstream fout(argv[1],ios::app); //日志记录文件 //加入日期记录 time_t t; time(&t); fout.seekp(0,ios::end);


return 0;
} if(pcap_datalink(adhandle) == DLT_EN10MB && d->addresses != NULL) break; if(d==NULL) cout<<"\nNO interfaces found! Make sure winpcap is installed.\n"; return 0;
if(fout.tellp()!=0) fout<<endl; fout<<"\t\tARP request(1)/replay(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 协议数据包的捕获解析 设计与实现
李彦婵、赵玉翠
一、ARP数据包结构
struct arppkt{ unsigned short hdtyp; unsigned short protyp; unsigned char hdsize; unsigned char prosize; unsigned short op; u_char smac[6]; u_char sip[4]; u_char dmac[6]; u_char dip[4]; }; //硬件地址 //协议类型 //硬件地址长度 //协议地址长度 //操作值 //源MAC地址 //源IP地址 //目的MAC地址 //目的IP地址

{
}
if(inum<1||inum>i)


printf("\nInterface number out of range.\n");
}
/* print devices list */ for (d = alldevs;d != NULL; d = d->next ) { printf("%d. %s",++i,d->name); if (d->description) printf("(%s)\n",d->description); else printf("(No description avaliable)\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);
//循环捕获ARP包,并进行解析
//开始捕获MAC帧 int result; //时间到返回结果 while((result=pcap_next_ex(adhandle, &header, &pkt_data)) >= 0) { if(result==0) continue; packet_handler(header,pkt_data,cout); //解析ARP包,输出结果 packet_handler(header,pkt_data,fout); //输出到文件 } return 0;
}
相关文档
最新文档