2017-01-10 21 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)); 
       }     
      } 
} 
関連する問題