2013-08-17 16 views
1

IP를 저장하는 MySQL 열이 있는데 데이터 형식은 varbinary 16입니다. 나는 그것에 IPV6를 저장하면왜 내 IPV6 저장시 잘리지 않습니까?

, 왜 잘립니다?

2001:11ff:ffff:ffff:ffff:ffff:ffff:ffff 

가된다 :

2001:11ff:ffff:f 

답변

4

당신이 당신의 VARBINARY(16) 열에서 IPv6 주소의 문자열 표현을 저장하려고하는 것 같다. 당신은 기능 INET6_ATON()를 사용하여 VARBINARY(16)로 변환해야하고, 당신은 INET6_NTOA()를 사용하여 다시 검색 할 수 있습니다.

SQLFiddle demo. "INET6_ATON(expr)을"

+0

, 내 MySQL은 당신은'VARBINARY (16) '형식을 사용한다 INET6 – Ben

+0

이 그나마 5.5입니다. 그러나, 함수'INET6_NTOA()'''INET6_ATON()'은 MySQL 5.6.3에서만 추가되었습니다. 5.6으로 업그레이드하거나 클라이언트에서 변환 할 수 있습니다. – mvp

+0

내 공유 호스팅 당신은 여전히 ​​클라이언트 측에서 자신의 구현을 만들 수 있습니다 5.5 :( – Ben

0

MySQL의 5.6.3는 다음을 참조, IPv6 주소에 대한 지원을하고있다. 내가 문자열에 저장하려면 내가 저장해야 할 데이터 유형

관련 문제