package me.egg82.antivpn.utils; import inet.ipaddr.AddressStringException; import inet.ipaddr.IPAddressString; import java.util.regex.Pattern; public class ValidationUtil { /** * UUID_PATTERN_6 compiled and benchmarked from * https://github.com/tinnet/java-uuid-validation-benchmark * Results on my machine, 06/22/18: https://pastebin.com/hWs62pV2 * Update: modified for less-than-great UUIDs */ private static final Pattern uuidValidator = Pattern.compile("^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", Pattern.CASE_INSENSITIVE); private ValidationUtil() {} public static boolean isValidIPRange(String range) { if (range == null || range.isEmpty()) { return false; } try { return new IPAddressString(range).toAddress().isMultiple(); } catch (AddressStringException ignored) { return false; } } public static boolean isValidIp(String ip) { if (ip == null || ip.isEmpty()) { return false; } try { return !new IPAddressString(ip).toAddress().isMultiple(); } catch (AddressStringException ignored) { return false; } } public static boolean isValidUuid(String uuid) { if (uuid == null || uuid.isEmpty()) { return false; } return uuidValidator.matcher(uuid).matches(); } }