,一,掩码形如:“255.255.255.0”转化为位 数24,思路如下:

  1. 判断传入的掩码字符串是否是ip,最简单的方法使用正则,直接进行匹配,代码如下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public static boolean isMask(String mask){  
Pattern pattern = Pattern.compile("(^(\\d{1,3}\\.){3}\\d{1,3}$)");

return pattern.matcher(mask).matches();
}
2.  判断IP中1个数,我使用的思路,将掩码转化为整形,对整形进行判断1的个数。
2.1  将IP转化为整形

public static int ipToInt(String ipAddr) { if(!isMask(ipAddr))
return 0;
        String[] ipArr = ipAddr.split("\\.");
       
        return  ((Integer.parseInt(ipArr[0]) & 0xFF) <<24) + ((Integer.parseInt(ipArr[1]) & 0xFF) << 16) 
+  ((Integer.parseInt(ipArr[2]) & 0xFF))  << 8 + ((Integer.parseInt(ipArr[3]) & 0xFF));

}

2.2  对整数进行数1操作:

public staticint findNumberOf1(int n)
{
    int countOf1=0;
    int tag=1;
while(tag != 0)
    {
        if((tag&n) !=0)
            countOf1++;
        tag=tag<<1;
    }
    return countOf1;
}

二,掩码位数转化为IP形式,思路如下:

public static String intToMask(int bitMask)
{
if(bitMask > 32)
return null;

int tmpMask[] = {0,0,0,0};
        int times = bitMask / 8;
        int i = 0;
for(; i < times ; i++)
{
tmpMask[i] = 255;
}

for(int j = 1; j <= 8; j++)
{
if(j <= bitMask - times*8)
tmpMask[i] = 2*tmpMask[i] + 1;
else
tmpMask[i] = 2*tmpMask[i];
}
 
return Integer.toString(tmpMask[0]) + "." + Integer.toString(tmpMask[1]) +  "." +  Integer.toString(tmpMask[2])  + "." + Integer.toString(tmpMask[3]);
}

java 掩码 iP与位数的转化相关推荐

  1. java实现 IP/掩码位 转换 ip段范围

    import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.reg ...

  2. Java根据IP地址/掩码位(CIDR)和起始IP-终止IP计算网段(IPV4和IPV6)

    Java根据IP地址/掩码位(CIDR)和起始IP-终止IP计算所有IP地址(IPV4和IPV6) 计算IP列表 IPV4 IPV6 IP校验 IPV4 IPV6 计算IP列表 IPV4 1.需要的j ...

  3. java 代理ip工具类_Java基础之java处理ip的工具类

    java处理ip的工具类,包括把long类型的Ip转为一般Ip类型.把xx.xx.xx.xx类型的转为long类型.根据掩码位获取掩码.根据 ip/掩码位 计算IP段的起始IP.根据 ip/掩码位 计 ...

  4. Java TCP/IP Socket 编程 笔记

    http://jimmee.iteye.com/blog/617110 http://jimmee.iteye.com/category/93740 Java TCP/IP Socket 编程 笔记( ...

  5. java获取IP地址和MAC地址方式

    java获取IP地址和MAC地址方式 前端和后台都可以获取 ip获取方式比较简单,就不做分析了,主要说mac的获取 前端获取的方式与局限性:尝试好几种方式,这种是最易实现.最简单的方式,确实能获取该浏 ...

  6. java 网站服务器ip地址,java服务器ip地址

    java服务器ip地址 内容精选 换一换 已成功登录Java性能分析.待安装Guardian的服务器已开启sshd.待安装Guardian的服务器已安装JRE,JRE版本要求为Huawei JDK 8 ...

  7. java转换ip地址格式转换_Java编程IP地址和数字相互转换代码示例

    最近才知道,将ip地址转换成十进制.八进制.十六进制同样可以访问网站. IP转为数字(第二种算法.用左移.按位或实现.效率更高.): public long ipToLong(String ipAdd ...

  8. apache代理时java获取IP的问题

    2019独角兽企业重金招聘Python工程师标准>>> x-forwarded-for的深度挖掘 如今利用nginx做负载均衡的实例已经很多了,针对不同的应用场合,还有很多需要注意的 ...

  9. java 4位数,java 找出4位数的所有吸血鬼数字

    java 找出4位数的所有吸血鬼数字 /** * 找出四位数所有的吸血鬼数字 * 吸血鬼数字:位数为偶数的数字可以由一对数字相乘而得,这对数字包含乘积一半的位数 * 如:1260 = 21*60 */ ...

  10. java中各种时间格式的转化

    http://www.chinaitpower.com/A/2005-01-14/104881.html 使用java.util.Calendar返回间隔天数         static int g ...

最新文章

  1. 关于学习Python的一点学习总结(11->字典的应用)
  2. MongoDB管理: 使用killOp干掉Long Running Operation
  3. UIView的layoutSubviews和drawRect方法何时调用
  4. 【百家稷学】深度学习与嵌入式平台AI实践(北京交通大学实训)
  5. Java - 自己动手之在线书店(2)
  6. 28个不得不看的经典编程算法!!
  7. Kotlin基础-扩展
  8. 云时代企业如何保护共享文档数据安全?
  9. JavaEE5 Tutorial_JavaBean,JSTL
  10. 桌面时钟代码_被遗忘的手机桌面小部件
  11. 【论文写作】毕业论文写作时的常见问题
  12. python抓取抖音用户画像,摩羯天蝎居然刷得最多?
  13. php检测php.ini是否配制正确
  14. Fanvas, 把swf文件转html5 canvas js软件工具程序
  15. 软件测试ios打包,苹果测试iOS打包成 ipa包
  16. 前端核心工作内容有哪些?
  17. YAPI 重点功能使用介绍
  18. leetcode:买卖股票的最佳时机含手续费(python)
  19. redmi Note12T屏幕刷新率是多少 Redmi Note12T相机怎么样 有几个摄像头
  20. [小小明]Python正则表达式速查表与实操手册

热门文章

  1. 行为经济学_为什么所有数据科学家都应该了解行为经济学
  2. 付呗聚合支付快速教程 基础篇②——FubeiUtils付呗工具类(封装参数和签名规则)
  3. django后台管理界面美化
  4. python对接蚂蚁验证码平台
  5. java标书_java软件项目投标技术标书.doc
  6. 计算机技术职业资格考试
  7. 小米10系列详细参数对比,小米10 青春版\10\10Pro\10至尊纪念版
  8. 中信银行总行信息科技部的面试(校招)
  9. efficientNet论文心得
  10. OPTIMIZING DNN COMPUTATION WITH RELAXED GRAPH SUBSTITUTIONS