版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38204686/article/details/82261513
static bool ifMask(string yanma)
{
//11111 0000 是否分割 标志位
bool zero = false;
//分割成四段
string[] ip_4 = yanma.Split('.');
if (ip_4.Length != 4) return false;
for (int i = 0; i < 4; i++)
{
//如果是255
if (ip_4[i].Equals("255"))
{
if (zero) return false;
}
//其它网段 前面全为1 后面全为0
else if (ip_4[i].Equals("128") ||
ip_4[i].Equals("192") || ip_4[i].Equals("224") ||
ip_4[i].Equals("240") || ip_4[i].Equals("248") ||
ip_4[i].Equals("252") || ip_4[i].Equals("254"))
{
//标志位为1 后面应该全为0 退出 掩码格式错误
if (zero) return false;
zero = true;
}
//全是0
else if (ip_4[i].Equals("0") || ip_4[i].Equals("00") || ip_4[i].Equals("000"))
{
//还没有分割 则标志位为1 分割 1 0
if (!zero) zero = true;
}
//其它数字或者字符
else return false;
}
//全部检查完毕 无错误
return true;
}