java IP to Long 변환 유틸
127.0.0.1 와 같은 형태의 아이피를 long 형식으로 바꿔서 사용해야 할때가 있다
아래는 변환 유틸을 정리 한 내용이다.
private static final long DIGIT_1 =(long)Math.pow(256, 3);
private static final long DIGIT_2 =(long)Math.pow(256, 2);
private static final long DIGIT_3 =(long)Math.pow(256, 1);
private static final long DIGIT_4 =(long) Math.pow(256, 0);
public static long transIpLong(String ip, int mask) {
long i = convertToIpNumber(ip);
double x = i + Math.pow(2.0, 32 - mask) - 1;
return new Double(x).longValue();
}
public static long convertToIpNumber(String ip) {
String[] digits = StringUtils.split(ip, ".");
long value = 0;
value = Integer.parseInt(digits[0]) * DIGIT_1 + Integer.parseInt(digits[1]) * DIGIT_2
+ Integer.parseInt(digits[2]) * DIGIT_3 + Integer.parseInt(digits[3]) * DIGIT_4;
return value;
}
long sipaddrl = 0;
sipaddrl = transIpLong(ip, 32);
mask 값을 32로 주면 해당 아이피를 변환한 값이다.