首页 > 编程语言 >java ip地址转换成int

java ip地址转换成int

时间:2023-11-09 11:33:59浏览次数:42  
标签:java int ip position1 strIp sb append


数据库存放,提高数据库使用性能我们将字符串IP转换成int类型保存!

java代码如下:

// 将127.0.0.1形式的IP地址转换成十进制整数,这里没有进行任何错误处理  
    public static long ipToLong(String strIp) {  
        long[] ip = new long[4];  
        // 先找到IP地址字符串中.的位置  
        int position1 = strIp.indexOf(".");  
        int position2 = strIp.indexOf(".", position1 + 1);  
        int position3 = strIp.indexOf(".", position2 + 1);  
        // 将每个.之间的字符串转换成整型  
        ip[0] = Long.parseLong(strIp.substring(0, position1));  
        ip[1] = Long.parseLong(strIp.substring(position1 + 1, position2));  
        ip[2] = Long.parseLong(strIp.substring(position2 + 1, position3));  
        ip[3] = Long.parseLong(strIp.substring(position3 + 1));  
        return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];  
    }  
  
    // 将十进制整数形式转换成127.0.0.1形式的ip地址  
    public static String longToIP(long longIp) {  
        StringBuffer sb = new StringBuffer("");  
        // 直接右移24位  
        sb.append(String.valueOf((longIp >>> 24)));  
        sb.append(".");  
        // 将高8位置0,然后右移16位  
        sb.append(String.valueOf((longIp & 0x00FFFFFF) >>> 16));  
        sb.append(".");  
        // 将高16位置0,然后右移8位  
        sb.append(String.valueOf((longIp & 0x0000FFFF) >>> 8));  
        sb.append(".");  
        // 将高24位置0  
        sb.append(String.valueOf((longIp & 0x000000FF)));  
        return sb.toString();  
    }




标签:java,int,ip,position1,strIp,sb,append
From: https://blog.51cto.com/u_809530/8274673

相关文章

  • Java类加载机制
    类加载机制将class文件中的二进制数据读取到内存中,并对其进行校验,解析和初始化,将类型数据存放在方法区,实例对象存放在堆,作为方法区该类的数据访问接口。这就是类加载。加载通过全限定名获取二进制字节流将字节流代表的静态存储结构转化为方法区的运行时数据结构在堆中生成......
  • 【深入理解Java虚拟机】内存分配策略
    本文内容来源于《深入理解Java虚拟机》一书,非常推荐大家去看一下这本书。本系列其他文章:【深入理解Java虚拟机】Java内存区域模型、对象创建过程、常见OOM【深入理解Java虚拟机】垃圾回收机制垃圾收集器与内存分配策略Java技术体系中所提倡的自动内存管理最终可以归结为自动......
  • 【JAVA】智慧工地信息管理系统源码 智慧大屏、手机APP、SaaS模式
    一、智慧工地可以通过安全八要素来提升安全保障,具体措施包括:  1.安全管理制度:建立科学完善的安全管理制度,包括安全标准规范、安全生产手册等,明确各项安全管理职责和要求。  2.安全培训教育:对工地人员进行安全培训和教育,提高他们的安全意识和安全素质,使其掌握必要的安全知......
  • sip中继的内容
    sip中继是什么类型的产品?SIP通道是传统电话线的数字版本,每个SIP通道允许同时进行两个呼叫,一个呼出,一个呼入。与物理电话线不同,无需布线就可以根据需要添加新的SIP通道。sip中继的功能用途SIP中继用于SIP服务器之间建立SIP连接,是“服务器-服务器”类型的连接方式。sip中继的接入类型......
  • Java实现截图和录屏
    一、截图,Javax提供的能力。importjavax.imageio.ImageIO;importjava.awt.*;importjava.awt.image.BufferedImage;importjava.io.File;publicclassDemo1{publicstaticvoidmain(String[]args)throwsException{//创建一个Robot对象......
  • 2023NOIP A层联测26 总结
    2023NOIPA层联测26总结题目T1origen大意\(n,a_i\leq2\times10^5\)赛时思路一开始想固定一个端点递推去求贡献,发现异或加上平方维护不了递推式,痛失40min。后面多的时间分给T1后接着想做法,考虑拆平方化代数式,然后平方项的因式分解忘了,导致后面一直认为平方项会被加多......
  • Java获取Windows或Linux下的IP地址
    Java获取Linux或Windows下的IP地址,详情如下importlombok.extern.slf4j.Slf4j;importjava.net.InetAddress;importjava.net.NetworkInterface;importjava.net.SocketException;importjava.net.UnknownHostException;importjava.util.Enumeration;@Slf4jpubli......
  • 【misc】[HNCTF 2022 Week1]calc_jail_beginner_level2.5(JAIL) --沙盒逃逸,breakpoint
    查看附件内容这道题过滤挺多重要的函数,比如exec,input,eval,还对长度做了限制,这里了尝试了help函数,但是最后一步!ls没通,接着考虑breakpoin函数:Python中内置了一个名为breakpoint()的函数,在Python3.7中引入,用于在调试模式下设置断点。使用breakpoint()函数会停止程序的执行,并在......
  • 2023NOIP A层联测26 T4 abstract
    2023NOIPA层联测26T4abstract乱证明求性质的光速幂优化题。思路对于每一个节点,到该节点的子树内的叶子节点的路径中(包括路径上的点),出现的值只有\(k\times(\logV+\logV)\)个。那么在以该点为终点,以子树内节点为起点的路径中,取值只有\(k\times(\logV+\logV)\)。这是......
  • Java Fastjson反序列化漏洞研究
    一、Fastjson简介Fastjson是阿里巴巴的一个开源项目,在GitHub上开源,使用Apache2.0协议。它是一个支持JavaObject和JSON字符串互相转换的Java库。Fastjson最大的特点在于它的快速,它超越了JackJson、Gson等库。据官方发布的说明,Fastjson从2011年fastjson发布1.1.x版本之后,其性能......