网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

计算连续的IP地址问题

题目:要求计算连续的IP地址。

创新互联建站是一家专业提供易县企业网站建设,专注与成都做网站、成都网站建设、成都外贸网站建设H5高端网站建设、小程序制作等业务。10年已为易县众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

举例:起始IP为192.168.2.2,IP总个数为3,那么要求得的所有IP的为192.168.2.2,192.168.2.3,192.168.2.4。再举个例子,起始IP为192.168.2.253,IP总个数为5那么要求得的所有IP为192.168.2.253,192.168.2.254,192.168.2.255,192.168.3.0,192.168.3.1。

按照传统的解法可以这么做:

static void Main(string[] args)
{
    string ip = "192.168.2.253";//起始IP
    int count = 5;//要计算连续IP的个数
                
    var ipValue = BitConverter.ToUInt32(IPAddress.Parse(ip).GetAddressBytes().Reverse().ToArray(), 0);
                
    for (uint i = 0; i < count; i++)
    {
        IPAddress newIp = IPAddress.Parse((ipValue + i).ToString());
        Console.WriteLine(newIp);
    }
}

那如果我们用linq稍微改造一下,可以这么干:

static void Main(string[] args)
{
    string ip = "192.168.2.253";//起始IP
    int count = 5;//要计算连续IP的个数
           
    var ipValue = BitConverter.ToUInt32(IPAddress.Parse(ip).GetAddressBytes().Reverse().ToArray(), 0);
           
    var newIps = from p in Enumerable.Range(0, count)
                 let newIp = ipValue + p
                 select new { IP = IPAddress.Parse(newIp.ToString()) };
           
    foreach (var newIp in newIps)
    {
        Console.WriteLine(newIp.IP);
    }
}

答案:

192.168.2.253
192.168.2.254
192.168.2.255
192.168.3.0
192.168.3.1


当前文章:计算连续的IP地址问题
网页地址:http://bjjierui.cn/article/jecjdg.html

其他资讯