- 对IP及掩码位进行校验
public static void ipcheck(String host, String mask) throws Exception {
if (!host.matches("^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
+ "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\." + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
+ "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$")) {
throw new Exception("IP地址不合规范");
}
if (!Pattern.compile("[0-9]*").matcher(mask).matches() || Integer.parseInt(mask)
<= 0 || Integer.parseInt(mask) > 32) {
throw new Exception("子网掩码位不合规范");
}
}
- 对掩码位进行计算
掩码位总共32位,转换为二进制就是32个1,掩码位23就是[11111111 11111111 11111110 00000000],对不满足32位的进行补0处理
/**
* 计算掩码
*
* @param mask
* @return 二进制数组如[11111111, 11111111, 11111111, 11111