IP 주소가 0.0.0.0~255.255.255.255 까지 범위 내에 있는지 정규 표현식으로 체크하는 예제를 보겠습니다.
IP 주소 범위 체크 예제
public class IPv4Test {
public static void main(String[] args) {
String strIP = "127.0.0.1";
if(Pattern.matches("((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])([.](?!$)|$)){4}", str)){
System.out.println("IP 주소가 범위 안에 있습니다."));
}else{
System.out.println("IP 주소가 범위 밖에 있습니다."));
}
}
}
사용한 정규 표현식 다음과 같습니다.
((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])([.](?!$)|$)){4}
입력한 값이 0.0.0.0~255.255.255.255 범위 안에 있으면 True, 범위 밖이면 False를 반환합니다.
체크를 다른 곳에서도 사용해야 한다면 함수로 만들어서 사용하면 편리합니다.
예제
public class IPv4Test {
public static void main(String[] args) {
String strIPok = "127.0.0.1";
String strIPng = "127.0.256.1";
if(isIPv4(strIPok)){
System.out.println("IP 주소가 범위 안에 있습니다."));
}else{
System.out.println("IP 주소가 범위 밖에 있습니다."));
}
if(isIPv4(strIPng)){
System.out.println("IP 주소가 범위 안에 있습니다."));
}else{
System.out.println("IP 주소가 범위 밖에 있습니다."));
}
}
public static boolean isIPv4(String str) {
return Pattern.matches("((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])([.](?!$)|$)){4}", str);
}
}
정리
정규 표현식을 사용하여 IP 주소가 범위 내에 있는지 체크하는 예제를 만들어봤습니다.
IP 주소 양식을 체크하는 방법은 여러 가지가 있지만 범용적으로 사용해야 하는 경우에는 정규 표현식으로 작성해주는 것이 편리할 수도 있습니다.
댓글