如何尽快快速创建ip范围?

时间:2016-11-19 11:25:56

标签: c# for-loop ip ip-address filestream

如何获得最快的结果 我写下面的代码。

for (int i = 0; i < 256; i++)
             for (int j = 0; j < 256); j++)
               for (int k = 0; k < 256; k++)
                     for (int p = 0; p < 256; p++)
                     {
                         writer.WriteLine(string.Format("{0}.{1}.{2}.{3}", i, j, k, p));
                     }

但是我的用户告诉我它很慢。我不知道如何促进进步。或许可以分享这个问题  有人知道。感谢。

2 个答案:

答案 0 :(得分:1)

您将保存256个4项的功率。这是对setText的超过40亿次调用。如果需要创建那么多项,则必须查看setText的性能。你的循环足够高效,如果你可以优化setText还不清楚,因为我不知道它的作用。但是你做的40亿次可能会很慢。

答案 1 :(得分:1)

您可以尝试使用IPAddressRange:https://www.nuget.org/packages/IPAddressRange/

但如果想要获得所有ipv4范围,它仍然会很长!

var range = NetTools.IPAddressRange.Parse("192.168.0.10 - 192.168.10.20");
System.Text.StringBuilder builder = new System.Text.StringBuilder();
  foreach (var item in range)
    {
        builder.Append(item);
    }