728x90
반응형

스프링(spring3.1+)에서 javax.servlet.http.HttpServletRequest​ 로 들어오는 요청에 해당하는 IP주소를 확인하여 설정된 대역에 포함되는지 체크해봤다.

복잡한 구현 필요없이 commons-net-3.3.jar 를 이용하면 간단히 해결할 수 있다.

 

1. 서브넷을 이용한 방법

1.1. WEB-INF/conf/system.properties 작성​

 

허용할 IP 주소

permit.ip.addr=192.168.5.64

 

서브넷

permit.ip.subnet=255.255.255.0

 

1.2. isInRange(요청 IP주소)

org.apache.commons.net.util.SubnetUtils​ subnetUtils = new SubnetUtils("192.168.5.64", "255.255.255.0");

org.apache.commons.net.util.SubnetUtils.SubnetInfo subnetInfo = subnetUtils.getInfo();

if(subnetInfo.isInRange(요청 IP​주소)){

   system.out.println("요청한 IP주소는 허용합니다.");

}else{

   system.out.println("요청한 IP주소는 허용하지 않는 네트워크 입니다.");​

}

 

2. CIDR NOTATION 을 이용한 방법

2.1. WEB-INF/conf/system.properties 작성​

 

허용할 IP 주소/Network Prefix Length

permit.ip.addr=192.168.5.64/26

 

2.2. isInRange(요청 IP주소)

org.apache.commons.net.util.SubnetUtils.SubnetInfo subnetInfo = new org.apache.commons.net.util.SubnetUtils("192.168.5.64/26").getInfo();

if(subnetInfo.isInRange(요청 IP​주소)){

   system.out.println("요청한 IP주소는 허용합니다.");

}else{

   system.out.println("요청한 IP주소는 허용하지 않는 네트워크 입니다.");​

 

commons.net => http://commons.apache.org/proper/commons-net/apidocs/index.html​​

subnet => http://ko.wikipedia.org/wiki/부분망

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,