[java] Hibernate Validator를 사용하여 IP 주소 유효성 검사를 수행하는 방법은 무엇인가요?

먼저, @Pattern 어노테이션을 사용하여 IP 주소를 정규식으로 검사할 수 있습니다. 다음은 이를 수행하는 예시 코드입니다.

import javax.validation.constraints.Pattern;
import javax.validation.constraints.NotNull;

public class IPAddressValidatorTest {

    @NotNull
    @Pattern(regexp = "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
                      "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
                      "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
                      "([01]?\\d\\d?|2[0-4]\\d|25[0-5])$")
    private String ipAddress;

    // Getter and Setter

    public static void main(String[] args) {
        IPAddressValidatorTest validatorTest = new IPAddressValidatorTest();
        validatorTest.setIpAddress("192.168.0.1");

        // 유효성 검사 수행
        Set<ConstraintViolation<IPAddressValidatorTest>> violations = 
            Validation.buildDefaultValidatorFactory().getValidator().validate(validatorTest);

        if (violations.isEmpty()) {
            System.out.println("IP 주소가 유효합니다.");
        } else {
            for (ConstraintViolation<IPAddressValidatorTest> violation : violations) {
                System.out.println(violation.getMessage());
            }
        }
    }
}

위의 코드는 IP 주소가 올바른 형식인지 확인하기 위해 정규식을 사용합니다. @Pattern 어노테이션을 사용하여 문자열이 주어진 정규식과 일치하는지 확인합니다. 정규식은 IPv4 주소 형식에 맞는 IP 주소 패턴을 나타냅니다.

IP 주소가 올바른 형식인 경우 “IP 주소가 유효합니다.”라는 메시지를 출력합니다. 그렇지 않은 경우, ConstraintViolation 객체를 통해 유효성 검사 실패 사유를 알 수 있습니다.

이를 실행하면 다음과 같은 결과가 출력됩니다.

IP 주소가 유효합니다.

이렇게 Hibernate Validator를 사용하여 IP 주소의 유효성을 검사할 수 있습니다.

참고: