(OK) Android 内核 中,判断 srcaddr, dstaddr 是否属于 某个网段 或 同一个 网段
2017-07-02 20:40
447 查看
//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");
相关文章推荐
- 用asp判断某IP是否属于一个网段的另类算法
- 如何判断一个日期是否属于当前系统本月的日期
- Android判断一个Service是否运行
- Android判断一个Service是否运行
- 判断两个IP地址是否在同一个网段中
- floyd 闭包传递 判断两个点是否属于同一个 强连通分量
- 判断某一ip地址是否属于某一ip网段的脚本
- Android 中判断一个程序是否为输入法程序
- javascript判断两个IP地址是否在同一个网段的实现思路
- 如判断这两个IP是否属于同一网段
- 用asp判断某IP是否属于某网段的另类算法
- 如何判断两个IP大小关系及是否在同一个网段中
- 如判断这两个IP是否属于同一网段?
- java判断某个ip是否在一个网段内
- 判断ip地址是否在一个网段(局域网)
- Android判断一个Service是否运行 对服务的判断
- 判断两个IP大小及是否在同一个网段中
- 判断两个IP大小关系及是否在同一个网段中
- android 判断一个包是否在系统存在
- hdu 3594 强连通判断一条边是否只属于一个环