Linux socket发送ARP请求包 C语言

#前言

手动输入的参数有网卡名源IP目标IP,它们定义在程序开头。如需调整其他ARP参数,只需对程序适当位置修改即可。

本程序着重在于功能实现的学习,故没有考虑像制作成工具一样的编写,尽量保证代码简洁。

需要先熟悉ARP包中的各个字段再来编写程序。


进一步改写为组包工具,可以自由设定源IP、目标IP以及源MAC:Linux ARP请求组包工具 C语言socket


程序基本分为三部分

构造以太网帧头部

构造ARP包内容

构造sockaddr_ll地址结构

其中以太网帧头部和ARP请求内容(也就是网络中传输的一个ARP包完整内容)共同存储在一个buffer中,构造好buffer之后通过socket发送出去即可。

#代码实现

#include <stdio.h>      
#include <stdlib.h>  
#include <string.h>
#include <unistd.h>

#include <sys/socket.h>     
#include <sys/ioctl.h>      
#include <arpa/inet.h>      

#include <linux/if.h>
#include <linux/if_packet.h> 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值