将ip转为整数以及整数转为ip的java实现

一个ip地址用字符串保存,长度为(7-15)也就是(14-30bytes),而用int保存只需要4bytes,所以下面的代码:
​
    /**
     * ip字符串转整数
     * ip是.分割的整数字符串,按照r进制转十进制的规律,按权相加求和,这里的权是256.
     * @param ip
     * @return
     */
        public int ip2Int(String ip){
        if(null == ip || "".equals(ip.trim()) || !checkIP(ip)) return 0;
        String[] ipStrs = ip.split("\\.");//分割ip
        int result = 0;
        for(int i = 0;i < 4;i ++){
            Integer ipSubInteger = Integer.parseInt(ipStrs[i]);
            if(ipSubInteger > 255) {//正则验证不能为负数
                result = 0;
                break;
            }
            result += (ipSubInteger << (24 - i * 8));
        }
        return result;
    }
    
    /*正则验证ip*/
    private boolean checkIP(String ip){
        return ip.matches("\\d{1,3}(\\.\\d{1,3}){3}");
    }
    
    /**
     * 整数转ip
     * @param ip
     * @return
     */
    public String int2Ip(int ip){
        StringBuilder builder = new StringBuilder(String.valueOf(ip >>> 24));
        builder.append(".");
        builder.append(String.valueOf((ip & 0X00FFFFFF) >>> 16));
        builder.append(".");
        builder.append(String.valueOf((ip & 0X0000FFFF) >>> 8));
        builder.append(".");
        builder.append(String.valueOf(ip & 0X000000FF));
        return builder.toString();
    }

​
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,422评论 8 114
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,554评论 0 17
  • 任何一个讲的通的好故事前提都要有一个能让人产生兴趣并且说得通的设定。《人类清除计划》系列在我看来就有这样的一...
    StayHungry阅读 444评论 10 0
  • 文章中提到“蘑菇定律”,即新入职的员工会被丢到阴暗的角落里,让他们独自生长,且对于他们的培养重在战术,而非战略,所...
    寒冬之城阅读 307评论 0 0