我以编程方式检索我的IP和网络掩码,并从那些计算第一个和最后一个可能的IP地址。之后我将它们分成两个单独的列表。在此之后,我使用两个for循环:
//Third octet
else if (firstIpList[2].ToString() != lastIpList[2].ToString())
{
for (int i = Convert.ToInt32(firstIpList[2]); i < Convert.ToInt32(lastIpList[2]); i++)
{
for (int x = Convert.ToInt32(firstIpList[3]); x < Convert.ToInt32(lastIpList[3]); x++)
{
ipRange.Add(firstIpList[0].ToString() + "." + firstIpList[1].ToString() + "." + i.ToString() + "." + x.ToString());
}
}
}
这只是检查列表中第三个八位字节的第三个条目,由于地址数量少,第四个八位字节不是那么苛刻,而第二个八字节虽然要求更高,但不太常见所以我使用第三个作为示例
这是做什么的循环让我们说10.23.0 - &gt; 255.并且对于那些另外的每个0 - > 255。
是的我有广播和ID,但这不是重点,重点是这是一个运行65025次的循环,你可能认为这非常耗时。有没有办法让这更有效?
我首先考虑的是addrange,因为在第三个八位字节中我想要在0到255之间添加0-255,所以我可以制作另一个列表,其中包含第四个八位字节范围的一个副本和foreach数字第三个八位字节添加我的第四个八位字节列表。但是这会给我一个看起来像10.23.0的项目列表 - &gt;这些项目中的每一项都有0-> 255作为子项目?