分享
 
 
 

手把手教你玩转ARP包(二)【数据包的游戏系列之一】

王朝vc·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

作者:

CSDN VC/MFC 网络编程 PiggyXP ^_^

目录:

一. 关于ARP协议的基础知识

3. ARP包的填充

二。发送数据包的编程实现

1.填充数据包

.........................紧接上文............................

3.ARP包的填充

1) 请求包的填充:

比如我们的电脑MAC地址为 aa-aa-aa-aa-aa-aa,IP为 192.168.0.1

我们想要查询 192.168.0.99的MAC地址,应该怎么来做呢?

首先填充DLC Header,通过前面的学习我们知道,想要知道某个计算机对应的MAC地址是要给全网发送广播的,所以接收方MAC肯定是 ffffffffffff,发送方MAC当然是自己啦,于是我们的DLC Header就填充完成了,如图,加粗的是我们要手动输入的值(当然我编的程序比较智能,会根据你选择的ARP包类型帮你自动填入一些字段,你一用便知^_^)。

DLC Header

字段

长度(Byte)

填充值

接收方MAC

6

ffffffffffff

发送方MAC

6

aaaaaaaaaaaa

Ethertype

2

0x0806

图3 ARP请求包中 DLC Header内容

接下来是ARP帧,请求包的操作码当然是 1,发送方的MAC以及IP当然填入我们自己的,然后要注意一下,这里的接收方IP填入我们要查询的那个IP地址,就是192.168.0.99了,而接收方MAC填入任意值就行,不起作用,于是,如图,

ARP Frame

字段

长度(Byte)

填充值

硬件类型

2

1

上层协议类型

2

0800

MAC地址长度

1

6

IP地址长度

1

4

操作码

2

1

发送方MAC

6

aaaaaaaaaaaa

发送方IP

4

192.168.0.1

接收方MAC

6

任意值 xxxxxxxxxxxx

接收方IP

4

192.168.0.99

填充数据

18

0

图4 ARP请求包中 ARP帧的内容

如果我们构造一个这样的包发送出去,如果 192.168.0.99存在且是活动的,我们马上就会收到一个192.168.0.99发来的一个响应包,我们可以查看一下我们的ARP缓存列表,是不是多了一项类似这样的条目:

192.168.0.99 bb-bb-bb-bb-bb-bb

是不是很神奇呢?

我们再来看一下ARP响应包的构造

2) 响应包的填充

有了前面详细的解说,你肯定就能自己说出响应包的填充方法来了吧,所以我就不细说了,列两个表就好了

比如说给 192.168.0.99(MAC为 bb-bb-bb-bb-bb-bb)发一个ARP响应包,告诉它我们的MAC地址为 aa-aa-aa-aa-aa-aa,就是如此来填充各个字段

DLC Header

字段

长度(Byte)

填充值

接收方MAC

6

bbbbbbbbbbbb

发送方MAC

6

aaaaaaaaaaaa

Ethertype

2

0x0806

图5 ARP响应包中 DLC Header内容

ARP Frame

字段

长度(Byte)

填充值

硬件类型

2

1

上层协议类型

2

0800

MAC地址长度

1

6

IP地址长度

1

4

操作码

2

2

发送方MAC

6

aaaaaaaaaaaa

发送方IP

4

192.168.0.1

接收方MAC

6

bbbbbbbbbbbb

接收方IP

4

192.168.0.99

填充数据

18

0

图6 ARP响应包中 ARP帧的内容

这样192.168.0.99的ARP缓存中就会多了一条关于我们192.168.0.1的地址映射。

好了,终于到了编程实现它的时候了^_^

二. 发送ARP包的编程实现

1. 填充数据包

上面的那些关于ARP包各个字段的表格,对应在程序里就是结构体,对应于上面的表格,于是我们需要三个下面这样的结构体

// DLC Header

typedef struct tagDLCHeader

{

unsigned char DesMAC[6]; /* destination HW addrress */

unsigned char SrcMAC[6]; /* source HW addresss */

unsigned short Ethertype; /* ethernet type */

} DLCHEADER, *PDLCHEADER;

// ARP Frame

typedef struct tagARPFrame

{

unsigned short HW_Type; /* hardware address */

unsigned short Prot_Type; /* protocol address */

unsigned char HW_Addr_Len; /* length of hardware address */

unsigned char Prot_Addr_Len; /* length of protocol address */

unsigned short Opcode; /* ARP/RARP */

unsigned char Send_HW_Addr[6]; /* sender hardware address */

unsigned long Send_Prot_Addr; /* sender protocol address */

unsigned char Targ_HW_Addr[6]; /* target hardware address */

unsigned long Targ_Prot_Addr; /* target protocol address */

unsigned char padding[18];

} ARPFRAME, *PARPFRAME;

// ARP Packet = DLC header + ARP Frame

typedef struct tagARPPacket

{

DLCHEADER dlcHeader;

ARPFRAME arpFrame;

} ARPPACKET, *PARPPACKET;

这些结构体一定能看懂吧,在程序中就是对号入座就好了

.................

==================================================================

不爽这么快又满了,文章不知道要拆成几份了..-_-b

请期待下文 : )

----- Finished at 2004-05-29 19:41

------ Made In DLUT | DIP

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有