如何尽快创建一个 ip 范围?
how to create an ip range fast as fast as possible?
如何最快得到结果
我写下面的代码。
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));
}
但是我的用户告诉我它太慢了。我不知道如何促进进步。分享问题,也许
有人知道。谢谢。
您正在节省 256 的 4 次方。这是对 setText
的超过 40 亿次调用。如果您需要 创建那么多项目,则必须查看 setText 的性能。您的循环性能足够好,如果您可以优化 setText
尚不清楚,因为我不知道它的作用。但是任何你做 40 亿次的事情都可能会很慢。
您可以尝试使用 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);
}
如何最快得到结果 我写下面的代码。
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));
}
但是我的用户告诉我它太慢了。我不知道如何促进进步。分享问题,也许 有人知道。谢谢。
您正在节省 256 的 4 次方。这是对 setText
的超过 40 亿次调用。如果您需要 创建那么多项目,则必须查看 setText 的性能。您的循环性能足够好,如果您可以优化 setText
尚不清楚,因为我不知道它的作用。但是任何你做 40 亿次的事情都可能会很慢。
您可以尝试使用 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);
}