将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-03-31 16:34:07 发布