11.4.8 使用SOCK_PACKET编写ARP请求程序的例子

11.4.8  使用SOCK_PACKET编写ARP请求程序的例子

本节利用SOCK_PACKET套接字进行ARP请求的程序设计,并给出代码的例子。

1ARP协议数据和结构

包含以太网头部数据的ARP协议数据结构如图11.16所示。

11.16  ARP协议的数据示意图

ARP的数据结构在头文件<linux/if_arp.h>中定义,代码如下:

 

struct arphdr

{

    __be16      ar_hrd;         /*硬件类型*/

    __be16      ar_pro;         /*协议类型*/

    unsigned char   ar_hln;     /*硬件地址长度*/

    unsigned char   ar_pln;     /*协议地址长度*/

    __be16      ar_op;          /*ARP操作码*/

};

 

对于以太网上的ARP请求包,上述成员的值如表11.6所示。

11.6  ARP在以太网上请求包的值和含义

   

   

ar_hrd

硬件类型

1

硬件地址为以太网接口

ar_pro

协议类型

0x0800

高层协议为IP协议

ar_hln

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值