189 8069 5689

计算连续的IP地址问题-创新互联

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

成都创新互联公司是由多位在大型网络公司、广告设计公司的优秀设计人员和策划人员组成的一个具有丰富经验的团队,其中包括网站策划、网页美工、网站程序员、网页设计师、平面广告设计师、网络营销人员及形象策划。承接:成都做网站、网站设计、网站改版、网页设计制作、网站建设与维护、网络推广、数据库开发,以高性价比制作企业网站、行业门户平台等全方位的服务。

举例:起始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

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


网站标题:计算连续的IP地址问题-创新互联
文章地址:http://cdxtjz.cn/article/goccs.html

其他资讯