DATABASE/오라클
오라클 IP 범위 체크 정규식
수유산장
2021. 2. 15. 19:44
오라클에서 정규식을 사용하여 IP를 모두 3자리로 만든 다음에 비교를 하면 된다.
select REGEXP_REPLACE(REPLACE('.'||'127.0.0.1', '.', '.00'), '([^.]{3}(\.|$))|.', '\1')
from dual;
127.0.0.1 -> 127.000.000.001
위와 같은 정규식을 이용하여 접근하는 아이피 체크를 하면 된다.
기본 데이터는 아이피 허용 시작 ~ 끝으로 설정해 놓고 해당 범위에 들어오면 접근을 허용하면 된다.
select count(*) as cnt
from (
select REGEXP_REPLACE(REPLACE('.'||'192.168.100.55', '.', '.00'), '([^.]{3}(\.|$))|.', '\1') as ip
, REGEXP_REPLACE(REPLACE('.'||'192.168.100.51', '.', '.00'), '([^.]{3}(\.|$))|.', '\1') as ip_start
, REGEXP_REPLACE(REPLACE('.'||'192.168.100.56', '.', '.00'), '([^.]{3}(\.|$))|.', '\1') as ip_end
from dual
) where ip between ip_start and ip_end
;
위 쿼리는 192.168.100.51 ~ 192.168.100.56 까지 접근 가능하게 설정한 예이다.