//struct sockaddr_in netaddr1, netaddr2;
//inet_aton("255.255.255.0", &netaddr1.sin_addr);
//inet_aton("112.26.0.0", &netaddr2.sin_addr);
//== 判断 srcaddr, dstaddr 是否属于 某个网段 或 同一个 网段
//== if (locaddr == 112.26.0.0/24) || ( locaddr/24 == remaddr/24 )
// if (((srcaddr.sin_addr.s_addr & netaddr1.sin_addr.s_addr) == netaddr2.sin_addr.s_addr)
// || ((srcaddr.sin_addr.s_addr & netaddr1.sin_addr.s_addr)
// == (dstaddr.sin_addr.s_addr & netaddr1.sin_addr.s_addr)))
//== netaddr1.sin_addr.s_addr, 即, inet_aton(), 可以使用 inet_addr() 代替
// if (((srcaddr.sin_addr.s_addr & inet_addr("255.255.255.0")) == inet_addr("112.26.0.0"))
// || ((srcaddr.sin_addr.s_addr & inet_addr("255.255.255.0"))
// == (dstaddr.sin_addr.s_addr & inet_addr("255.255.255.0"))))
//== Android 内核 中 没有 inet_aton(), inet_addr(), 直接 使用 IP 地址 的 十六进制表示
//== "255.255.255.0" = 0x00ffffff, "112.26.0.0" = 0x00001a70
if (((srcaddr.sin_addr.s_addr & 0x00ffffff) == 0x00001a70)
|| ((srcaddr.sin_addr.s_addr & 0x00ffffff)
== (dstaddr.sin_addr.s_addr & 0x00ffffff)))
printf("yes\n");
else
printf("no\n");
(OK) Android 内核 中,判断 srcaddr, dstaddr 是否属于 某个网段 或 同一个 网段
原创ztguang_张同光 ©著作权
©著作权归作者所有:来自51CTO博客作者ztguang_张同光的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:(OK) Android-x86-7.1.1/ kernel 4.4.62 - quagga - MIMP - 9
下一篇:(OK) Android-x86-7.1.1/ kernel 4.4.62 - quagga - MIMP - 8 (mptcp_fullmesh.c, mptcp_ipv4.c)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
跨网段通信的完整过程
了解基础知识
ip地址 数据帧 封装 -
如何判断两个IP地址是否在同一个网段?
文章目录1. 背景2. 如何根据掩码来确定ip地址网段例1:例23. 如何根据ip地址子网掩码1. 背景子网掩码只有一个作用
tcp/ip 网络协议 网络 ip地址 子网掩码 -
python-判断2个IP地址是否属于同一网段
python实现IP地址是否处于1个网段的判断。
IP 子网 python