【发布时间】:2011-03-14 06:46:34
【问题描述】:
我需要获取子网中包含的所有 IP 地址,我正在尝试使用 IPnetwork 来完成此操作
例如,子网 192.168.1.0/29 将具有以下输出:
// Output
// 192.168.1.0
// 192.168.1.1
// 192.168.1.2
// 192.168.1.3
// 192.168.1.4
// 192.168.1.5
// 192.168.1.6
// 192.168.1.7
这是我的代码:
IPNetwork ipn = IPNetwork.Parse("192.168.1.0/29");
IPAddressCollection ips = IPNetwork.ListIPAddress(ipn);
foreach (IPAddress ip in ips)
{
Console.WriteLine(ip);
}
// Output
// 192.168.1.0
// 192.168.1.0
// 192.168.1.0
// 192.168.1.0
// 192.168.1.0
// 192.168.1.0
如您所见,这不是预期的结果。我错过了什么?是否有其他工具或方法可以完成这项工作?我设法破解了一些东西,但它并不漂亮,我不确定它是否正确枚举了更大的子网。
【问题讨论】:
-
这看起来像是您正在使用的 ipnetwork 库中的一个错误。
-
我希望能找到过去使用过这个库的人,而不必修复这个人的代码......对于想要做 c# 子网划分的人来说,它得到了很多建议,所以我想我是在钓鱼;)。
标签: c# ip-address subnet cidr