利用ARP协议来获取局域网内活动主机的IP跟MAC地址

本文介绍如何利用ARP协议和Winpcap库在局域网内获取活动主机的IP和MAC地址。通过构造并发送ARP请求包,监听回应,可以提取出局域网中开机主机的网络信息。同时,文中提及这种方法也可用于ARP攻击,实现数据包的拦截。
摘要由CSDN通过智能技术生成

 我们都知道ARP协议可以用来获取已知IP主机的MAC地址,那是不是可以这样说,在同一个 局域网内,我们可以利用ARP回应包来判断局域网内的活动主机?其实是行的,只要局域网内的主机是处于开机状态,那就会对ARP请求包作出回应,通过分析ARP请求包就可以把局域网内所有活动主机的IP地址跟MAC地址提取出来。下面是ARP帧结构和以太网帧结构的定义:

//28字节ARP帧结构
struct arp_head
{
unsigned short hardware_type;    //硬件类型
unsigned short protocol_type;    //协议类型
unsigned char hardware_add_len; //硬件地址长度
unsigned char protocol_add_len; //协议地址长度
unsigned short operation_field; //操作字段
unsigned char source_mac_add[6]; //源mac地址
unsigned long source_ip_add;    //源ip地址
unsigned char dest_mac_add[6]; //目的mac地址
unsigned long dest_ip_add;      //目的ip地址
};


//14字节以太网帧结构
struct ethernet_head
{    
unsigned char dest_mac_add[6];    //目的mac地址
unsigned char source_mac_add[6]; //源mac地址
unsigned short type;              //帧类型
};

//arp最终包结构
struct arp_packet
{
ethernet_head ed;
arp_head ah;
};

    这里我们是用winpcap开发包来构造相应的数据包的(利用pcap_sendpacket()函数可以发送构造后的数据包),具体内容可以自己去看下winpcap开发包的开发文档。下面是具体代码࿱

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值