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로 주면 해당 아이피를 변환한 값이다.
'Work > java' 카테고리의 다른 글
DEBUG POP3: server doesn't support TOP, disabling it (0) | 2013.10.14 |
---|---|
ArrayList 중복 제거 및 순차 정렬 함수 (0) | 2013.08.20 |
jxl을 이용한 엑셀 파일에 그림 파일 첨부 하기 (0) | 2013.05.27 |
CentOs OpenOffice 설치 및 서버 실행 (0) | 2011.12.07 |
외부 사이트 이미지 로컬에 가져다 사용 하기 (0) | 2011.12.02 |