오라클에서 정규식을 사용하여 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 까지 접근 가능하게 설정한 예이다.

 

 

+ Recent posts