发送arp请求报文

 (1)报文格式(2)代码如下: #include <stdio.h>#include <stdlib.h>#include <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h>#incl...
摘要由CSDN通过智能技术生成

 (1)报文格式

(2)代码如下:

 

#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <net/ethernet.h>
#include <netpacket/packet.h>
#include <string.h>
#include <net/if.h>

#define SRC_MAC  { 0x00,0x0C,0x29,0x6F,0x57,0xE7 }//源MAC地址
#define DEST_MAC { 0x00,0x0C,0x29,0xD3,0xD6,0xF7 }//目的MAC地址

struct arppacket
{
        unsigned char dest_mac[ETH_ALEN];//接收方MAC
        unsigned char src_mac[ETH_ALEN];//发送方MAC
        unsigned short type;         //0x0806是ARP帧的类型值
        unsigned short ar_hrd;//硬件类型 - 以太网类型值0x1
        unsigned short ar_pro;//上层协议类型 - IP协议(0x0800)
        unsigned char  ar_hln;//MAC地址长度
        unsigned char  ar_pln;//IP地址长度
        unsigned short ar_
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
抓取ARP的步骤如下: 1. 打开网络抓包软件,例如Wireshark。 2. 选择要监听的网络接口,例如以太网、无线网卡等。 3. 设置过滤器,只监听ARP。过滤器可以设置为 "arp"。 4. 点击 "开始捕获" 按钮,开始抓取网络数据包。 5. 进行一些与ARP相关的操作,例如ping一个主机,使其产生ARP。 6. 停止捕获数据包,分析捕获到的ARPARP请求和应答的字段如下: 1. 硬件类型:表示硬件地址的类型,如以太网、无线网卡等。 2. 协议类型:表示网络协议的类型,如IPv4、IPv6等。 3. 硬件地址长度:表示硬件地址的长度,以字节为单位。 4. 协议地址长度:表示协议地址的长度,以字节为单位。 5. 操作码:表示ARP请求或应答的类型,请求为1,应答为2。 6. 发送端MAC地址:表示发送ARP的主机的MAC地址。 7. 发送端IP地址:表示发送ARP的主机的IP地址。 8. 目标MAC地址:表示目标主机的MAC地址。 9. 目标IP地址:表示目标主机的IP地址。 ARP请求和应答的区别在于操作码字段的值不同。ARP请求的操作码为1,而ARP应答的操作码为2。 ARP请求中的目标MAC地址字段为全0,因为请求并不知道目标主机的MAC地址。而ARP应答中的目标MAC地址字段为目标主机的MAC地址。 通过分析ARP,可以了解网络中主机的MAC地址和IP地址的对应关系,从而实现网络通信。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值