2017-01-10 65 views
-7

我需要將IP範圍(例如:46.28.66.16-46.28.71.255)轉換爲字符串數組。C#如何將IP範圍轉換爲字符串數組?

+5

任何努力從你身邊?只是試一試,並回來與您的片段 –

+2

可能的重複的[C#:枚舉範圍內的IP地址](http://stackoverflow.com/questions/4172677/c-enumerate-ip-addresses-in-a-range ) –

+0

@RahulHendawe - 那會如何工作? –

回答

0

附上你的問題的代碼片段。如果您有任何疑問,請讓我知道。

string iprange = "46.28.66.16-46.28.71.255"; 
      var ipV2 = iprange.Split('-')[0]; 
      ipV2 = ipV2.Substring(0, ipV2.Length - 5); 
      //WriteLine(ipV2); 
      var range = iprange.Split('-').Select(x => x.Split('.')[2]).ToArray(); 
      var ips = Enumerable.Range(Int32.Parse(range[0]), (Int32.Parse(range[1]) - Int32.Parse(range[0])) + 1).ToList(); 
      List<string> fullips = new List<string>(); 
      foreach (var ip in ips) 
      { 
       List<int> ipranges = new List<int>(); 
       if (iprange.Split('-')[0].Contains(ip.ToString())) 
       { 
        var ipV4 = iprange.Split('-').Select(x => x.Split('.')[3]).ToArray(); 
        ipranges = Enumerable.Range(Int32.Parse(range[0]), 256 -Int32.Parse(range[0])).ToList(); 
       } 
       else 
       { 
        ipranges = Enumerable.Range(0, 256).ToList(); 
       } 

       foreach(var _ip in ipranges) 
       { 
        fullips.Add(string.Concat(ipV2, ip, ".", _ip)); 
       }     
      } 
} 
相關問題