zoukankan      html  css  js  c++  java
  • (OK) Android 内核 中,判断 srcaddr, dstaddr 是否属于 某个网段 或 同一个 网段

      //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
    ");
    		else
    			printf("no
    ");
    


  • 相关阅读:
    ASP.NET学习线路(转)
    创建variant二维数组
    域名”A记录,MX记录,CNAME记录,TTL值,URL转发”解释
    数据库表行转列,列转行终极方案(转)
    [转载]oracle备份与恢复精华资料
    事务的概念
    Velocity语言的介绍
    初步认识JUnit
    JSON基本用法
    matplotlib入门
  • 原文地址:https://www.cnblogs.com/ztguang/p/12644621.html
Copyright © 2011-2022 走看看