I want to validate an IPv4 address using Java. It should be written using the dot-decimal notation, so it should have 3 dots (".
"), no characters, numbers in between the dots, and numbers should be in a valid range. How should it be done?
Pretty simple with Regular Expression (but note this is much less efficient and much harder to read than worpet's answer that uses an Apache Commons Utility)
private static final Pattern PATTERN = Pattern.compile(
"^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])$");
public static boolean validate(final String ip) {
return PATTERN.matcher(ip).matches();
}
Based on post Mkyong