我刚刚检查了这个post进行IP检查,而SubnetUtils检查了CIDR格式。
private boolean isValidCidrIp(String cidrIp) {
boolean isValid = true;
try {
new SubnetUtils(cidrIp);
} catch (IllegalArgumentException e) {
isValid = false;
}
return isValid;
}
但我真的不想import
一个包,因为我想检查IP和CIDR,如果我有其他选择。
所以我想出了这个Regx模式:
private static final Pattern IP_V4_PATTERN = Pattern.compile(
"^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])(/([0-2]?\\d?|3[0-2]))?$");
但它似乎不够好,其中包括每个字段的一些丑陋的前导0
。更糟糕的是,会有很多无效的IP地址。
有更好的想法吗?
答案 0 :(得分:-1)
Pattern cidrPattern = Pattern.compile("(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,3})");
System.out.println(cidrPattern.matcher("192.168.30.0/24").matches());
System.out.println(cidrPattern.matcher("192.168.30.160").matches());