-
INT4 형식으로 저장된 IP 값을 Function을 이용하여 처리 하기설치&설정 관련 2018. 10. 5. 16:55728x90
INT4 형식으로 저장된 IP 값을 Function을 이용하여 처리 하기
IP를 postgresql에 저장을 할때 문자열로 저장을 하기도 하지만, Network Address Types으로 제공도 된다.
Name Storage Size Description cidr 7 or 19 bytes IPv4 and IPv6 networks inet 7 or 19 bytes IPv4 and IPv6 hosts and networks macaddr 6 bytes MAC addresses 또한 다른 방식으로는 int8로 저장이 되기도 한다.
문제는 int4 형식으로 저장되었을 경우이다.
이 경우에는 음수값에 대하여 IP 형식으로 표출하기 위해서는 int4보다 큰 양수 형식으로 변환하여 표시 해야 한다.
간단하게 function을 이용하여 만들어 보았다.
create or replace function int2ip(intVal integer) returns TABLE( ipVal text ) as $$ begin if intVal < 0 then return QUERY SELECT ('0.0.0.0'::inet + ((2147483649+intVal)::bigint+2147483647::bigint))::text; -- return QUERY SELECT '0.0.0.0'::inet + ( 'x' || to_hex(intVal))::bit(32)::bigint else return QUERY SELECT ('0.0.0.0'::inet + intVal)::text; end if; end; $$ language 'plpgsql'; -- 211.115.106.210 select int2ip(-747410734);
결과
int2ip 211.115.106.210/32 postgresql을 설치 하지 않고도 온라인에서 간단하게 테스트 하는 사이트를 이용하였다..
참고 사이트
728x90'설치&설정 관련' 카테고리의 다른 글
Maven 배포시 Local Jar 파일과 함께 하기! (0) 2019.02.06 MongoDB 3.2.20 Authentication Setting (0) 2018.10.05 경력 개발자 면접 질문 (0) 2018.10.05 QRadar SDK를 Ubuntu 16.x에서 사용하기 위한 모듈 교체 작업 (0) 2018.04.17 Elastic Search 하나의 서버에서 여러 노드 구동시 설정 (0) 2018.01.15