[英]How to check IP and CIDR format in Java effectively?
我剛剛檢查了這篇文章以進行 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地址。
有更好的想法嗎?
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());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.