Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 查找第一个IP和最后一个IP之间的所有IP_C#_.net_Network Programming_Ip - Fatal编程技术网

C# 查找第一个IP和最后一个IP之间的所有IP

C# 查找第一个IP和最后一个IP之间的所有IP,c#,.net,network-programming,ip,C#,.net,Network Programming,Ip,我正在使用IPC网络库查找第一个和最后一个可用的IP地址。 我想要实现的是打印或在列表中存储第一个和最后一个可用IP之间的所有IP地址范围。我正在使用下面的查找第一个和最后一个可用的IP IPNetwork ipnetwork = IPNetwork.Parse("192.168.1.1/24"); string first = ipnetwork.FirstUsable.ToString(); string last = ipnetwork.LastUsable.ToS

我正在使用IPC网络库查找第一个和最后一个可用的IP地址。 我想要实现的是打印或在列表中存储第一个和最后一个可用IP之间的所有IP地址范围。我正在使用下面的查找第一个和最后一个可用的IP

    IPNetwork ipnetwork = IPNetwork.Parse("192.168.1.1/24");
    string first = ipnetwork.FirstUsable.ToString();
    string last = ipnetwork.LastUsable.ToString();
如果我传递一个大于或等于24的网络掩码,那么打印所有范围是非常简单的,因为使用/24最大值,我们有256个IP地址,254个可用于主机,一个简单的循环将生成所有范围,因为只有第四个八位字节将被更改。但是,如果我传递的网络掩码小于\24示例\23,则第三个八位字节也需要更改,简单的循环无法完成此任务,需要找到另一个解决方案。 此外,传递给IPNetwork.Parse的参数可能不是192.168.1.1或10.0.2.1所必需的,而是192.168.1.130或10.0.2.200,这也是需要考虑的问题。

示例8:

IPNetwork net = IPNetwork.Parse("192.168.0.1/23");
IPNetwork ips= IPNetwork.Subnet(net , 32);

Console.WriteLine("{0} was subnetted into /{1} ips", net ,     ips.Count);
Console.WriteLine("First: {0}", subneted[0]);
Console.WriteLine("Last : {0}", subneted[subneted.Count - 1]);
Console.WriteLine("All  :");

foreach (IPNetwork ipnetwork in ips)
{
    Console.WriteLine("{0}", ipnetwork);
}
输出

192.168.0.1/23 was subnetted into /32 subnets
First: 192.168.0.0/32
Last : 192.168.1.254/32
All  :
192.168.0.0
192.168.0.1
...
192.168.1.254

玩得开心

这有帮助吗:这个呢?是您编写的IPNetwork.Parse()还是一个预先存在的库?它是一个现有的库。