将string类型的子网掩码转为prefixLength,代码如下:
public static int submaskStr2PrefixLen(String maskStr) {
StringBuffer sb;
String str;
int inetmask = 0;
int count = 0;
//检查子网掩码的格式
Pattern pattern = Pattern.compile(
"(^((\\d|[01]?\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[01]?\\d\\d|2[0-4]\\d|25[0-5])$)|^(\\d|[1-2]\\d|3[0-2])$");
if (pattern.matcher(maskStr).matches() == false) {
Log.d("submaskStr2PrefixLen", "subMask is error");
return 0;
}
String[] ipSegment = maskStr.split("\\.");
for (int n = 0; n < ipSegment.length; n++) {
sb = new StringBuffer(Integer.toBinaryString(Integer.parseInt(ipSegment[n])));
str = sb.reverse().toString();
count = 0;
for (int i = 0; i < str.length(); i++) {
i = str.indexOf("1", i);
if (i == -1) {
break;
}
count++;
}
inetmask += count;
}
return inetmask;
}
将string类型的子网掩码转为prefixLength
最新推荐文章于 2022-10-19 10:51:46 发布
本文介绍了一种将字符串格式的子网掩码转换为前缀长度的方法,通过解析子网掩码的二进制表示来计算其等效的前缀长度,此过程涉及正则表达式的匹配和二进制位的计数。
3060

被折叠的 条评论
为什么被折叠?



