c# 检测一串字符串是否为子网掩码

版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
        }

猜你喜欢

转载自blog.csdn.net/qq_38204686/article/details/82261513