csharp 将子网掩码v4转换为CIDR(int)表示法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 将子网掩码v4转换为CIDR(int)表示法相关的知识,希望对你有一定的参考价值。
static int Mask2CIDR(string subnetmask)
{
try
{
Byte[] ipbytes = IPAddress.Parse(subnetmask).GetAddressBytes();
uint subnet = 16777216 * Convert.ToUInt32(ipbytes[0]) +
65536 * Convert.ToUInt32(ipbytes[1]) + 256 * Convert.ToUInt32(ipbytes[2]) + Convert.ToUInt32(ipbytes[3]);
uint mask = 0x80000000;
uint subnetConsecutiveOnes = 0;
for (int i = 0; i < 32; i++)
{
if (!(mask & subnet).Equals(mask)) break;
subnetConsecutiveOnes++;
mask = mask >> 1;
}
return (int)subnetConsecutiveOnes;
}
catch
{
return -1;
}
}
以上是关于csharp 将子网掩码v4转换为CIDR(int)表示法的主要内容,如果未能解决你的问题,请参考以下文章
子网划分的CIDR
Ip地址和子网掩码和CIDR无间别域间路由
c类ip CIDR
VLSM和CIDR-路由交换原理3-HCNA笔记
VLSM和CIDR-路由交换原理3-HCNA笔记
CIDR与VLSM的区别