2009-09-21 3 views
2

여기 DBA가 MySQL 데이터베이스의 DECIMAL (39,0) 필드에 IP 주소를 저장한다고합니다.Java : MySQL DECIMAL (39,0) IP 주소를 String으로 변환하는 방법

문자열로 변환하여 다른 응용 프로그램으로 전달하려면 어떻게해야합니까?

참고 : 데이터베이스는 더 이상로드 할 수 없으므로 가능한 한 많은 작업이 Java 응용 프로그램에서 수행되어야합니다.

주 2 : IPv6 지원은 필수입니다.

답변

-1

문제가 해결되어 데이터베이스 담당자가 대신 VARCHAR로 저장할 것을 확신했습니다.

+0

주소 변환을 위해 IPv6 번호를 구성하려고 시도했습니다. 전에 말했듯이 BigDecimal (MySQL DECIMAL 유형에 매핑 됨)을 사용할 수 있지만 터프한 작업입니다. –

5

사용

INET_NTOA

예 : IPADDR AS INET_NTOA (NUM)를 선택;

INET_ATON
예 : IPv4의 원래 IP 주소를 갖도록 설계 되었기 때문에 INSERT INTO addrTbl 값은 (..., INET_ATON ('192.168.0.1'), ...)

이 정의 작품 32 비트 숫자로. dot-decimal notation은 읽기 쉽도록 작성되었습니다.

업데이트

자바에있는 점 진수 표기법으로 숫자에서 변환을 수행 할 경우, MindProd site has an example.

+0

감사합니다. 나는 언급을 잊어 버렸다 ... MySQL 함수 호출이나 저장 프로 시저를 사용하는 것은 절대적으로 문제가되지 않는다. 데이터베이스 메모리는 프리미엄급입니다. – Justin

+0

Java에서이 작업을 수행하려는 것으로 가정하고 대답을 업데이트했습니다. –

+0

그게 더 도움이되지만, 여전히 그것을 자르지는 않습니다. IPv6를 지원하는 모든 방법을 알고 있습니까? – Justin

관련 문제