티스토리 뷰

 

IP 주소를 데이터베이스에 저장시 그대로 저장 하는것 보다는 효율적이라고 하여 변경 하여 저장.

암호화 같은 것이 아닌, varchar 가 아닌 unsigned int 나 number 형식을 이용 하여 효율을 높이는 형태.

 

 

-- MySQL : IP -> 숫자

SQL> SELECT INET_ATON('192.168.0.111') AS IP_NUM;

결과 : 3232235631

 

-- MySQL : 숫자 -> IP

SQL> SELECT INET_NTOA(3232235631) AS IP_STR;

결과 : 192.168.0.111

 

-- Oracle : IP -> 숫자

SQL> SELECT REGEXP_SUBSTR(IP_ADDR, '[^.]+', 1, 1) * 256 * 256 * 256

+ REGEXP_SUBSTR(IP_ADDR, '[^.]+', 1, 2) * 256 * 256

+ REGEXP_SUBSTR(IP_ADDR, '[^.]+', 1, 3) * 256

+ REGEXP_SUBSTR(IP_ADDR, '[^.]+', 1, 4) AS IP_NUM

FROM (SELECT '192.168.0.111' AS IP_ADDR FROM DUAL);

결과 : 3232235631

 

 

-- Oracle : 숫자 -> IP

SQL> SELECT FLOOR(IP_NUM/256/256/256)

|| '.' || FLOOR(MOD(IP_NUM, 256*256*256)/256/256)

|| '.' || FLOOR(MOD(IP_NUM, 256*256)/256)

|| '.' || MOD(IP_NUM, 256) AS IP_STR

FROM (SELECT 3232235631 AS IP_NUM FROM DUAL);

결과 : 192.168.0.111

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함