`
jakielong
  • 浏览: 229167 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ARP头

阅读更多

ifndef _NET_IF_ARP_H_ 
#define _NET_IF_ARP_H_

/* 
* 地址解释协议. 
* 
* 查看 RFC 826 对该协议的描述.   ARP 包长度是变化的 
* 头部(arphdr)结构定义了固定长度部分. 
*/ 
struct arphdr { 
u_short ar_hrd; /* 格式化的硬件地址 */ 
#define ARPHRD_ETHER 1 /* 以太网格式 */ 
#define ARPHRD_IEEE802 6 /* 令牌环网格式 */ 
#define ARPHRD_FRELAY 15 /* 帧中继硬件格式 */ 
u_short ar_pro; /* 协议地址格式 */ 
u_char ar_hln; /* 硬件地址长度*/ 
u_char ar_pln; /* 协议地址长度 */ 
u_short ar_op; /* 以下之一: */ 
#define ARPOP_REQUEST 1 /* 发出请求解释一IP地址 */ 
#define ARPOP_REPLY 2 /* 回应上一个请求 */ 
#define ARPOP_REVREQUEST 3 /* 请求一IP地址(给出硬件地址,实际上是逆向地址解释) */ 
#define ARPOP_REVREPLY 4 /* 回应逆向地址解释 */ 
#define ARPOP_INVREQUEST 8 /* 请求对方的ID */ 
#define ARPOP_INVREPLY 9 /* 回应对方的ID */ 
/* 
* 下面的字段是可变长的, 
* 主要是依照上面给出的定义. 
*/ 
#ifdef COMMENT_ONLY 
u_char ar_sha[]; /* 发送者硬件地址 */ 
u_char ar_spa[]; /* 发送者协议地址 */ 
u_char ar_tha[]; /* 目的方硬件地址 */ 
u_char ar_tpa[]; /* 目的方协议地址*/ 
#endif 
};

/* 
* ARP ioctl 请求 
*/ 
struct arpreq { 
struct sockaddr arp_pa; /* 协议地址 */ 
struct sockaddr arp_ha; /* 硬件地址 */ 
int arp_flags; /* 标识 */ 
}; 
/*   arp_flags 和 at_flags 域的值 */ 
#define ATF_INUSE 0x01 /* 入口在使用 */ 
#define ATF_COM 0x02 /* 完整的入口 (enaddr 有效) */ 
#define ATF_PERM 0x04 /* 持久的入口 */ 
#define ATF_PUBL 0x08 /* 发布一入口 (回应其他主机) */ 
#define ATF_USETRAILERS 0x10 /* 有追踪请求 */ 

#ifdef _KERNEL 
/* 
* 该结构是以太网设备驱动程序和ARP程序所共享. 
*/ 
struct arpcom { 
/* 
*   ifnet 结构必须在此结构的第一个位置. 
*/ 
struct ifnet ac_if; 
u_char ac_enaddr[6]; /* 以太网硬件地址*/ 
int ac_multicnt; /* 多播地址列表数 */ 
void *ac_netgraph; /* PPPoE(ADSL)的指针 */ 
}; 

extern u_char etherbroadcastaddr[6]; 
#endif 

#endif /* !_NET_IF_ARP_H_ */

typedef struct _ARPHdr
{
unsigned short arp_hrd;
unsigned short arp_proto;
unsigned char arp_hlen;
unsigned char arp_plen;
unsigned short arp_op;
unsigned char arp_sha[6];
unsigned char arp_spa[4];
unsigned char arp_tha[6];
unsigned char arp_tpa[4];
}ARPHdr;
 

分享到:
评论

相关推荐

    ARP头结构详细说明

    ### ARP头结构详细说明 #### ARP协议概览与工作原理 ARP(地址解析协议),作为TCP/IP协议栈中的一项基础且关键的底层协议,扮演着将网络层的IP地址转换为链路层的MAC地址的重要角色。这一转换过程是网络通信中不...

    7.1.1 ARP 头 - Wireshark 数据包分析实战(第 3 版) - 知乎书店1

    在Wireshark这样的网络封包分析工具中,理解ARP头的结构对于深入分析网络通信至关重要。在《Wireshark数据包分析实战(第3版)》一书中,作者详细介绍了ARP头的各个组成部分,让我们一起深入探讨。 首先,ARP头包含...

    ARP欺骗源代码(基于WinPcap实现)

    ARP欺骗源代码(基于WinPcap实现) 本文将详细介绍ARP欺骗源代码的实现细节,该源代码基于WinPcap实现,旨在帮助读者深入了解ARP欺骗的原理和实现过程。 标题解释 该源代码的标题为“ARP欺骗源代码(基于WinPcap...

    arp.rar_ARP 协议_ARP协议的实现_arp_arp协议

    这通常通过定义结构体来实现,例如,定义以太网头、IP头和ARP头的结构。 2. **构建ARP请求**:根据ARP协议格式,创建ARP请求包,包含发送方的IP和MAC地址,以及接收方的IP地址。 3. **广播ARP请求**:利用原始套接...

    T-ARP(基于arp欺骗的抓包工具)源代码基于arp欺骗的抓包工具

    ### T-ARP(基于ARP欺骗的抓包工具) #### 简介 T-ARP是一款基于ARP欺骗技术的抓包工具,主要用于网络安全测试与分析。它通过改变局域网内的ARP缓存表来实现中间人攻击(Man-in-the-Middle Attack),从而能够截获...

    linux下收发arp包

    它不添加或删除任何协议头,使得发送的数据包保持原始状态。 ```c int sockfd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ARP)); ``` 3. **PF_PACKET + SOCK_DGRAM**:与SOCK_RAW类似,但提供了基于数据报的...

    arp.zip_RAW_arp linux_arp 测试源码_linux ARP

    本压缩包“arp.zip_RAW_arp_linux_arp 测试源码_linux ARP”包含了Linux下关于ARP协议的原始套接字(raw socket)测试源码,这为深入学习和实践ARP工作原理提供了宝贵的资料。 `arp.c`文件很可能是实现这一功能的...

    ARP协议获得局域网内活动主机物理地址程序

    【ARP协议】 ARP(Address Resolution Protocol)协议是TCP/IP协议栈中的一种重要协议,它在数据链路层运行,负责将IP地址转换为物理地址,即MAC地址。在局域网环境中,设备之间通信必须依赖MAC地址,因为物理网络...

    ARP编程,获取MAC地址

    ARP头包含了发送者和接收者的IP及MAC地址,以及操作码(请求或应答)。以太网头则包含源和目标的MAC地址。 3. 使用sendto函数将构造好的ARP请求发送到网络上。由于目标MAC地址未知,所以这里需要设置为广播地址FF:...

    ARP 协议程序 实例 示例 winpcap

    ARP(Address Resolution Protocol)协议是网络层的一种重要协议,它用于将IP地址转换为物理(MAC)地址,以便数据可以在局域网(LAN)中正确地传输。在本实例中,我们将探讨如何利用winpcap库来开发一个ARP协议程序...

    arp地址解析

    4. 数据包解析:深入理解网络数据包的结构,包括IP头、ARP头以及以太网头等部分。 5. 实时网络监控:通过该项目,可以实时查看网络中的ARP交互,有助于理解和排查网络问题。 6. 网络安全:了解ARP欺骗的概念,即恶意...

    ARP欺骗程序源代码

    ### ARP欺骗程序源代码解析与理解 #### 一、ARP欺骗技术概览 ARP(Address Resolution Protocol)协议是网络层到链路层的地址转换协议,主要用于将IP地址转换为对应的物理地址(如MAC地址)。在局域网环境中,设备...

    使用ARP协议获取局域网内活动主机物理地址

    在计算机网络中,ARP(Address Resolution Protocol)协议是TCP/IP协议栈中的一个重要组成部分,它的主要功能是在局域网(LAN)环境下将IP地址解析为对应的物理地址,即MAC地址。这是因为局域网内的通信直接依赖于...

    接收arp请求并发送回应的实例

    【ARP协议详解】 ARP(Address Resolution Protocol)是网络编程中不可或缺的部分,它位于OSI模型的数据链路层,主要功能是在局域网中通过IP地址查找对应的物理地址(MAC地址)。由于TCP/IP协议栈在应用层发出信息...

    uIP的ARP协议代码分析之二 ARP应答.pdf

    首先,`uip_arp_arpin()`函数会检查接收到的包是否至少包含了一个ARP头的大小(`sizeof(struct arp_hdr)`),如果不是,那么函数会将`uip_len`设置为0,表示没有需要发送的包,并立即返回。这是对数据包完整性的基本...

    uIP的ARP协议代码分析之二 ARP应答.docx

    《深入解析uIP ARP协议代码实现》 在计算机网络中,地址解析协议(ARP)扮演着至关重要的角色,它负责将IP地址转换为物理层的MAC地址,以便于数据在网络中传输。uIP是一个轻量级的TCP/IP协议栈,广泛应用于嵌入式...

    反ARP欺骗程序

    在IT领域,网络通信安全是至关重要的,而ARP(Address Resolution Protocol,地址解析协议)欺骗是一种常见的网络攻击手段。ARP欺骗允许攻击者篡改网络流量,导致数据包被错误地发送到恶意第三方,而非真正的目的地...

    ARP理论学习、报文分析

    ### ARP理论学习、报文分析 #### 一、ARP(Address Resolution Protocol)概述 ARP,即地址解析协议,是计算机网络中的一个重要协议,主要用于解决IPv4网络中IP地址到物理地址(例如MAC地址)之间的映射问题。由于...

    arp攻击实例代码

    arp攻击实例代码,知道怎么封装arp头,以太网头,很实用

    ARP协议实例分析-二进制分析

    ### ARP协议实例分析—二进制分析 #### ARP协议简介 ARP(Address Resolution Protocol)协议是一种将网络层地址解析为链路层地址的协议。在实际应用中,它主要用于将IPv4地址转换成对应的MAC地址。ARP的工作原理...

Global site tag (gtag.js) - Google Analytics