IPv4字符串和整数相互转换

来源:互联网 发布:程序编程入门 编辑:程序博客网 时间:2024/05/21 11:08

在进行IP比较、查询的时候使用IP字符串比较相当麻烦,这个时候可以考虑将IP字符串转化为整数。

在运算完成之后,有需要将 整数转化为IPv4字符串以方便显示。

备忘如下:

public class IPTransfer {private final long PART1 = 0xff000000;private final long PART2 = 0xff0000;private final long PART3 = 0xff00;private final long PART4 = 0xff;/** 将IP地址长整型数值转化为IPv4字符串 */public String ip2Str(long ip) {String ipStr = String.valueOf((ip & PART1) >> 24);ipStr += "." + ((ip & PART2) >> 16);ipStr += "." + ((ip & PART3) >> 8);ipStr += "." + (ip & PART4);return ipStr;}/** 将IPv4字符串转化为对应的长整型整数 */public long ip2Long(String ip) {String[] p4 = ip.split("\\.");long ipInt = 0;long part = Long.valueOf(p4[0]);ipInt = ipInt | (part << 24);part = Long.valueOf(p4[1]);ipInt = ipInt | (part << 16);part = Long.valueOf(p4[2]);ipInt = ipInt | (part << 8);part = Long.valueOf(p4[3]);ipInt = ipInt | (part);return ipInt;}}

0 0
原创粉丝点击