(void)memcpy(&isaddr, ea->;arp_spa, sizeof (isaddr));/**/
(void)memcpy(&itaddr, ea->;arp_tpa, sizeof (itaddr));/*这两句是把发送和接受端的IP协议地址考到临时变量中*/
/*hack------------------------*/
printf(" %x <- %x oldip=%x on %s%d\n",itaddr.s_addr,isaddr.s_addr,oldip.s_addr,ac->;ac_if.if_name, ac->;ac_if.if_unit);
/*end------------------------*/
for (ia = in_ifaddrhead.tqh_first; ia; ia = ia->;ia_link.tqe_next) {/*ia到底是个什么东西呢*/
/*ia是一个in_ifaddr数据结构,在网卡接口的每一个Internet地址(一个网卡可以有多个Internet地址)都分配了
这样一个结构
struct in_ifaddr {
struct ifaddr ia_ifa; /* 分配给每一个接口的地址,通常是每个协议都有一个.详细说明如下:
----------------------------------------------------------------------------------------------
struct ifaddr {
struct sockaddr *ifa_addr; /* 接口的地址,sockaddr结构我就不讲了,太简单了 *
struct sockaddr *ifa_dstaddr; /* 点对点使用,对方的地址,如果是PPP,我们可查出局方的IP *
#define ifa_broadaddr ifa_dstaddr /* 广播地址 *
struct sockaddr *ifa_netmask; /* 用于子网,和上面的点对点互斥 *
struct if_data if_data; /* not all members are meaningful *
struct ifnet *ifa_ifp; /* 指向本块网卡的ifnet结构的回指针 *
TAILQ_ENTRY(ifaddr) ifa_link;/* 这是一个队列宏,意思是把该卡的所有ifaddr用next指针的方法链接起来 *
void (*ifa_rtrequest) /* 以下三个是路由相关的,我可不是路由专家,所以没有去分析
__P((int, struct rtentry *, struct sockaddr *));
u_short ifa_flags;
u_int ifa_refcnt; /* 统计被引用的次数 *
int ifa_metric; /* 一般都是1,具体干吗的,STEVEN也没说清楚(估计他觉得好烦,不想说:),我觉得好象是跳数)
#ifdef notdef
struct rtentry *ifa_rt; /* XXXX for ROUTETOIF ????? *你看原文,他都不知道,我可能吗.
#endif
int (*ifa_claim_addr) /* 是路由方面的,我也学STEVEN,其实我不知道*
__P((struct ifaddr *, struct sockaddr *));
};
----------------------------------------------------------------------------------------------
#define ia_ifp ia_ifa.ifa_ifp
#define ia_flags ia_ifa.ifa_flags /* 为了方便了 *
下面以:192.168.1.3为例子
u_long ia_net; /* 网络号:该例子是192.168.0.0 *
u_long ia_netmask; /* 网络掩码为:255.255.0.0*
u_long ia_subnet; /* 子网号是192.168.1.0 *
u_long ia_subnetmask; /* 子网掩码是255.255.255.0 *
struct in_addr ia_netbroadcast; /* 网络广播地址 in_addr结构只有一个成员u_long s_addr *
TAILQ_ENTRY(in_ifaddr) ia_link; /* 该卡的下一Internet的in_ifaddr结构指针 *
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 及其 漏洞 分析 详解 协议 地址 解析 ARP IP if ea- 路由 |
注册
个人空间
