首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C# -如何通过两个已知的ip地址获得网络掩码?

C# -如何通过两个已知的ip地址获得网络掩码?
EN

Stack Overflow用户
提问于 2016-12-20 07:44:48
回答 1查看 112关注 0票数 0

我有两个in地址-- first have 。如何获得网络掩码?

示例: 123.45.67.5 - 123.45.67.15 -已知值

答案: 255.255.255.128 -我想得到这个值(网络掩码)。

EN

回答 1

Stack Overflow用户

发布于 2016-12-20 12:51:42

第一次尝试时代码正确

代码语言:javascript
运行
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ConsoleApplication33
{

    class Program
    {

        static void Main(string[] args)
        {
            string ip1 = "123.45.67.5";
            string ip2 = "123.45.67.15";


            string mask = GetMask(ip1, ip2);

        }

        static string GetMask(string ip1, string ip2)
        {
            int[] ip1Array = ip1.Split(new char[] { '.' }).Select(x => int.Parse(x)).ToArray();
            int[] ip2Array = ip2.Split(new char[] { '.' }).Select(x => int.Parse(x)).ToArray();
            int[] mask = new int[] { 0, 0, 0, 0 };
            Boolean done = false;
            for (int i = 0; i < 4; i++)
            {
                for (int j = 7; j >= 0; j--)
                {
                    if ((ip1Array[i] & (1 << j)) == (ip2Array[i] & (1 << j)))
                    {
                        mask[i] |= (1 << j);
                    }
                    else
                    {
                        done = true;
                        break;
                    }
                }
                if (done) break;
            }



            return string.Join(".", mask);
        }
    }


}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41237172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档