赞助连接

赞助连接

阅 读 文 章

ARP地址解析协议详解及其漏洞分析

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(xie_minix) | 时间:2007-05-27 | 浏览:人次 ]


/*
 * 有克隆标志,即到外网,把网关的考过来就行了.
 */
rt_setgate(rt, rt_key(rt), /*既然是外网的IP,设置好他的路由的网关地址*/
(struct sockaddr *)&null_sdl);
gate = rt->;rt_gateway;/*gate是一sockaddr结构,那么他得到的是网关的硬件地址*/
SDL(gate)->;sdl_type = rt->;rt_ifp->;if_type;/*不用去查SDL宏,看都能看出来,他是把sockaddr转成sockaddr_dl结构.*/
SDL(gate)->;sdl_index = rt->;rt_ifp->;if_index;/*想一想,if_type在IP路由会是什么呢(当然还有IPX路由)*/
rt->;rt_expire = time_second;/*看了上面哪个函数就知道了,这个路由开始计时,放入当前时间的秒值*/
break;
}
/* 发送一免费ARP的通告.免费ARP用于查看是否有人和自己的IP相冲突. */
if (rt->;rt_flags & RTF_ANNOUNCE)
arprequest((struct arpcom *)rt->;rt_ifp,   /*发送一ARP请求*/
    &SIN(rt_key(rt))->;sin_addr,    /*看到吧,源IP地址和目的IP地址都是自己*/
    &SIN(rt_key(rt))->;sin_addr,
    (u_char *)LLADDR(SDL(gate)));/*我的硬件地址*/
case RTM_RESOLVE:
if (gate->;sa_family != AF_LINK ||
    gate->;sa_len < sizeof(null_sdl)) {
log(LOG_DEBUG, "arp_rtrequest: bad gateway value\n");
break;
}
SDL(gate)->;sdl_type = rt->;rt_ifp->;if_type;
SDL(gate)->;sdl_index = rt->;rt_ifp->;if_index;
if (la != 0)
break; /*到这是因为路由发生了改变*/
/*
 * 该路由可能来自克隆路由.
 */
R_Malloc(la, struct llinfo_arp *, sizeof(*la));/*分配一ARP节点所需的内存*/
rt->;rt_llinfo = (caddr_t)la;/*使相关路由的ARP节点指针指向所分配的地方*/
if (la == 0) { /*一开始我觉得这里有毛病,上面的那句应该放到该判断的后面,并应该FREE掉分配的结构,但没关系,清大家思考*/
log(LOG_DEBUG, "arp_rtrequest: malloc failed\n");
break;
}
arp_inuse++, arp_allocated++;/*统计用*/
Bzero(la, sizeof(*la));/*结构清0*/
la->;la_rt = rt;/*设置ARP节点的相关路由回指针*/
rt->;rt_flags |= RTF_LLINFO;/*在相关的路由中加上有ARP节点标志*/
LIST_INSERT_HEAD(&llinfo_arp, la, la_le);/*把该ARP节点插入ARP节点链表中(队列的插入操作)*/

#ifdef INET
/*
*广播地址和多播地址,他们都是永久ARP
 */
if (IN_MULTICAST(ntohl(SIN(rt_key(rt))->;sin_addr.s_addr))) {
ETHER_MAP_IP_MULTICAST(&SIN(rt_key(rt))->;sin_addr,
       LLADDR(SDL(gate)));
SDL(gate)->;sdl_alen = 6;/*硬件地址的长度,对rt(路由信息结构)的rt_gateway成员操作*/
rt->;rt_expire = 0;/*0表示该ARP永不过期*/
}
if (in_broadcast(SIN(rt_key(rt))->;sin_addr, rt->;rt_ifp)) {/*rt_key(rt)是查找路由信息中所包含IP的硬件地址,属路由函数*/
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 及其 漏洞 分析 详解 协议 地址 解析 ARP IP if ea- 路由

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.