본문 바로가기
Work/java

java IP to Long 변환 유틸

by 승수 2013. 6. 20.


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로 주면 해당 아이피를 변환한 값이다.