티스토리 뷰

study/Java

unsigned int형의 IP정보 변환 method

kwakjun0 kwakjun0 2009. 6. 2. 10:05


public static String convertIntegerToIp(long ip) {
 StringBuffer buf = new StringBuffer();
 buf.append(((ip >> 24 ) & 0xFF)).append(".")
 .append(((ip >> 16 ) & 0xFF)).append(".")
 .append(((ip >>  8 ) & 0xFF)).append(".")
 .append(( ip & 0xFF));        
 return buf.toString();
}

public static long convertStringToIntegerIp(String ip) {
 String[] parts = ip.split("\.");
 return (Long.valueOf(parts[0]) << 24) +
 (Long.valueOf(parts[1]) << 16) +
 (Long.valueOf(parts[2]) << 8) +
 (Long.valueOf(parts[3]));
}

댓글
  • 프로필사진 꼬소 IP 팩킹하고 언팩킹 하는 코드네.. 자바라서 저렇게 쓰는구낭..
    근데 꼭 저렇게 쓰면 bigendian하고 little endian하고 사용법이 다를텐데(자바는 관계없나?)
    잘 되는지 모르겠네.. (약간 궁금하기도 하다 ㅎ)

    우린 C언어라서 저런 메소드는 안 만들고 매크로만 쓴다.. 혹시나 필요하면 참고해라..

    #define IPPACK(x,y,z,r) (x<<24|y<<16|z<<8|r)
    #define IPRPACK(x,y,z,r) (r<<24|z<<16|y<<8|x);
    #define IPUPACK(k,x,y) (*(k+x) = (y&(0xff<<(24-x*8)))>>(24-x*8))
    2009.06.18 10:06
  • 프로필사진 kwakjun0 kwakjun0 흠...우리는 이렇게 하니까 아무런 문제는 없더라.ㅎ
    그리고 bigendian/littleendian은 테스트 안해본듯...ㅎㅎ
    2009.06.18 18:15 신고
댓글쓰기 폼