如何获得最快的结果 我写下面的代码。
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));
}
但是我的用户告诉我它很慢。我不知道如何促进进步。或许可以分享这个问题 有人知道。感谢。
答案 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);
}