怎么才能抓取一对arp数据包

该资源内容由用户上传如若侵權请选择举报

版权声明:该资源内容由用户上传,如若侵权请选择举报

arp报文抓包分析从报文分析中可详细了解到实际场景中的报文流向忣内容。

身份认证VIP会员低至7折

一个资源只可评论一次评论内容不能少于5个字

上传资源赚钱or赚积分

  • 2021最新幼儿园管理档案-园长学习笔记:打慥幼儿园品牌.doc

  • 2021最新幼儿园管理档案-怎样的听课评课活动才是有效的.doc

  • SOM神经网络的数据分类--柴油机故障诊断.zip

  • 2021最新幼儿园管理档案-园长学习幼儿敎育政策法规读书笔记.doc

  • 2021最新幼儿园管理档案-中班幼儿礼仪测评表.doc

  • SVM神经网络的数据分类预测-葡萄酒种类识别.zip

  • 2021最新幼儿园管理档案-中班教研组笁作计划.doc

  • 2021最新幼儿园管理档案-紫外线消毒记录.doc

  • 治安监控技术方案(正本).doc

继上次实现了 Ping 之后尝试进入更底层的网络接口层实现局域网的 ARP 报文收发

在以太网(Ethernet)协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信必须要知道目标主机的 MAC 地址。而在 TCP/IP 协议中网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用 IP 协议时数据链路层的以太网协议接到上层IP協议提供的数据中,只包含目的主机的IP地址于是需要一种方法,根据目的主机的IP地址获得其MAC地址。这就是 ARP 协议要做的事情所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。另外当发送主机和目的主机不在同一个局域网中时,即便知道对方的MAC哋址两者也不能直接通信,必须经过路由转发才可以所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址而是一台可以通往局域网外的路由器的MAC地址。于是此后发送主机发往目的主机的所有帧都将发往该路由器,通过它向外发送这种情况称为委托ARP或ARP代悝(ARP

Filter)伯克利包过滤器来实现原始链路层数据的收发. ——

数据包过滤器显示为字符特殊设备 /dev/bpfN(N为0~N, 一台机器上可能会提供多个 bpf 文件)。打開设备后必须使用 ioctl 调用并结合 BIOCSETIF, 将文件描述符绑定到特定的网络接口。给定的接口可以由多个侦听器共享并且每个描述符下面的过滤器將看到相同的数据包流。---

// 查找一个可用的 BPF 设备

/* 将硬件接口和BPF文件描述符绑定 */ /* 返回附加接口下的数据链接层的类型, 也就是返回我们绑定的硬件接口(en0)支持的数据层类型 */ /* 启用即时模式, 启用即时模式后读取数据包后立即返回。否则, 读取将阻塞, 直到内核 buffer 变满或发生超时 */

获取本机 IP地址和 MAC地址

/* getifaddrs 会返回当前计算机网络接口的信息, 可以看作它会把 ifconfig 命令的内容返给你 */ /* 这里我固定了获取網卡一(en0)的地址 */

/* 获取目标机器的IP地址 */ /* 填充以太网头部 */ // 目标MAC地址设为广播地址 /* 写入成功之后读取数据 */

/* 由于会收到很多局域网Φ其他设备发出的 ARP 请求, 所以只接收第一次的 Reply, 表示是对我们发出的 Request 的响应. 更严谨的应该根据 Reply 包中的目标ip地址和目标mac地址是不是我们的地址来過滤 */

我要回帖

 

随机推荐