java中将ip转为其他_将ip转为整数以及整数转为ip的java实现
发布日期:2021-10-25 22:55:55 浏览次数:2 分类:技术文章

本文共 986 字,大约阅读时间需要 3 分钟。

一个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();

}

转载地址:https://blog.csdn.net/weixin_32075843/article/details/114661067 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java为什么会有默认的背景色_java背景颜色问题
下一篇:java多线程并行执行命令_Java 多线程与并发(一):前置知识

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年03月31日 20时16分54秒