ARP协议实现和 ARP 测试
一、 实验环境:
Vmware下面安装 Linux系统,
【资料图】
VMware® Workstation 17 Pro
Unbuntu
,
SecureCRT
二、 编程语言
C语言, gcc
三、 功能框架
1、基础通用功能定义
定义结构体,
定义基本输出函数,
定义转换函数 ,
定义ip和mac射影队列处理函数
2、向指定ip发送arp数据包
构造arp数据包,向指定ip发送arp数据包
3、功侦听和接收ARP包,显示接收到的包内容
4、持续接收功侦听和接收ARP包, 显示接收到的IP和mac
5、列出局域网内活动主机的ip和mac,保存到指定的文本文件中
6、侦听和接收ARP包,查找ip-mac映射表,并回应arp包
五、 已经完成功能和实验关键过程
l 1、基础通用功能定义
、 结构定义,通用函数定义
gcc -c -o
、把ip和 mac 映射 ,添加到一个序列中
gcc -c -o
l 2、向指定ip发送arp数据包 ,
、编译和链接
#gcc -c arp_ -o arp_
#gcc -o arp_send arp_
、运行
#sudo ./ arp_send ens33
ens33是网卡名称,作为程序参数
需要输入目标ip地址 , 比如 ,并回车确认
3、功侦听和接收ARP包,显示接收到的包内容
每次运行后,只能接受一次。
、编译和链接
#gcc -c arp_ -o arp_
#gcc -o arp_recieve arp_
、运行
#sudo ./arp_recieve
l 4、持续接收回应包, 生成局域网内活动主机的ip和mac映射表,保存到指定的文本文件 ip_
运行后可以持续的接受arp回应包 。
、编译和链接
#gcc -c arp_ -o arp_
#gcc -o arp_listener arp_
、运行
#sudo ./arp_listenerens33
ens33是网卡名称,作为程序参数
注意:如果出现段错误,请重新运行程序
下面的图片,左边是持续接收界面,右边是发送界面
5、有效ip和mac映射列表,
、通过gedit,emaic等编辑器,打开文本文件 ip_
、通过cat命令显示 ip_ 内容
6、在另外一个 linux 克隆机下面操作,
recv_echo 需要单独在另外一个 linux下面运行 。
修改静态ip ,在第一个linux主机一个网段,重启生效,
到arp 源码目录下面
编译 运行 recv_echo
gcc -c -o
gcc -c recv_ -o recv_
gcc -o recv_echo recv_
sudo ./ recv_echo ens33
注意: 函数 在ip-mac映射表中查找mac
char* findMac(char* fileName, char* ip)
六、 遇到的问题以及解决方法
1、 结构体定义错误, 通过在网上搜索资料解决。
结构ether_header定义了以太网帧首部;结构arphdr定义了其后的5个字段,其信息
用于在任何类型的介质上传送ARP请求和回答;ether_arp结构除了包含arphdr结构外,
还包含源主机和目的主机的地址。
定义常量
#define EPT_IP 0x0800 /* type: IP */
#define EPT_ARP 0x0806 /* type: ARP */
#define EPT_RARP 0x8035 /* type: RARP */
#define ARP_HARDWARE 0x0001 /* Dummy type for frames */
#define ARP_REQUEST 0x0001 /* ARP request */
#define ARP_REPLY 0x0002 /* ARP reply */
以太网首部
typedef struct ehhdr
{
unsigned char eh_dst[6]; /* destination ethernet addrress */
unsigned char eh_src[6]; /* source ethernet addresss */
unsigned short eh_type; /* ethernet pachet type */
}EHHDR, *PEHHDR;
以太网arp字段
typedef struct arphdr
{
//arp首部
unsigned short arp_hrd; /* format of hardware address */
unsigned short arp_pro; /* format of protocol address */
unsigned char arp_hln; /* length of hardware address */
unsigned char arp_pln; /* length of protocol address */
unsigned short arp_op; /* ARP/RARP operation */
unsigned char arp_sha[6]; /* sender hardware address */
unsigned long arp_spa; /* sender protocol address */
unsigned char arp_tha[6]; /* target hardware address */
unsigned long arp_tpa; /* target protocol address */
}ARPHDR, *PARPHDR;
整个arp报文包,总长度42字节
typedef struct arpPacket
{
EHHDR ehhdr;
ARPHDR arphdr;
} ARPPACKET, *PARPPACKET;
#define ETH_HDRLEN 14
#define IP4_HDRLEN 20
#define ARP_HDRLEN 28
#define ARPOP_REQUEST 1
#define ARPOP_REPLY 2
ARP请求表示为ARPOP_REQUEST,ARP应答表示为ARPOP_REPLY。
//msg存放arp请求报文 unsigned char msg[]={ /*mac报文头部 14B*/ 0xff,0xff,0xff,0xff,0xff,0xff,/*目的mac地址*/ 0x00,0x00,0x00,0x00,0xf9,0x7f/*源mac地址 根据自己修改 ubuntu_mac*/ 0x08,0x06,/*帧类型*/ /*ARP报文头部 28B*/ 0x00,0x01,/*硬件类型*/ 0x08,0x00,/*协议类型*/ 6,/*硬件地址长度*/ 4,/*协议地址长度*/ 0x00,0x01,/*1 ARP请求*/ 0x00,0x0c,0x29,0x79,0xf9,0x7f,/*源mac地址 根据自己修改 ubuntu_mac*/ 192,168,0,3,/*源IP 根据自己修改 ubuntu_ip*/ 0x00,0x00,0x00,0x00,0x00,0x00,/*目的mac地址*/ 192,168,0,0/*目的IP*/ };
2、使用协议错误,通过在网上搜索资料解决。
PF_INET:IPv4互联网协议族
PF_INET6:IPv6互联网协议族
PF_LOCAL:本地通信的UNIX协议族
PF_PACKET:底层套接字的协议族
3、编译报错 : undefined reference to `main,
调用依赖没有解决, 把依赖的文件也编译进去
gcc -o arp_listener arp_
3、 运行 ./arp_listener
运行软件后出错提示: socket error: Operation not permitted,
使用sudo提权
Sudo ./arp_listener
4、使用网卡名称默认的eth0错误
使用ifconfig 命令,查看当前网卡名称
5、虚拟机下的linux和windows pc 不在一个局域网内,不能得到目标主机的回应.
解决方法: 需要二者都使用静态ip,在一个网段内 ,
Vmware 需要设置为bridge模式 。
==========QQ 75039960======================
关键词:
相关新闻
- ARP协议实现和 ARP 测试
- (经济观察)中国城市化进程减速了吗?
- 黑龙江再迎大范围降雨 局地有大暴雨
- 英集芯2023年一季度实现总营收2.21亿元,同比增长4.47%
- 发力科创:无锡最高2亿奖励搭建科创平台,金融机构强力支撑
- 龙芯中科(688047.SH)拟斥资3000万元至5000万元回购股份
- 青岛空港综合保税区开关运行
- 我爱我家(000560):该股换手率大于8%(08-28)
- 旅发大会看岳阳㉟湖南日报特稿|激情山水!自在平江!
- 日御光伏完成超亿元A轮融资
- 原来这就是够吃70年的茶卡盐湖!卫星视角→
- 莲花苑 景环路(关于莲花苑 景环路简述)
- 400余场活动,50万人次参与 武汉市青少年国家安全教育基地打卡实践活动收官
- 南方电网公司下属公司(南方电网的下属公司有哪几个)
- v标志的车是什么牌子价位多少(标志是v的车是什么车?)
- 俄媒:俄今年6月向印度供应118吨铀矿石,为4年来所供应首批铀矿石
- 光伏业务稳步推进,储能业务放量
- 尘白禁区--信息残片--提瓦克
- 福建首条全自动运行地铁线开通 年底前领券免费乘福州地铁
- 俄高官称若爆发三战将先炸伦敦 俄高官:俄已成为欧洲最大经济体 基本情况讲解
- 惩戒魅魔魔法师骷髅怎么打 惩戒魅魔法师用什么武器
- 广东东莞可提供创维冰箱维修服务地址在哪
- 西藏阿里地区日土县发生3.9级地震
- 中央气象台:我国东南部和北部海域将有6~8级大风