在 Arcus 库中,单个 IP 地址如何创建子网对象?

In the Arcus library how can a single IP address create a Subnet object?

Arcus 中,我可以创建一个具有单个 IP 地址的 Subnet

var ipAddress = IPAddress.Parse("192.168.1.1");
var subnet = new Subnet(ipAddress);

既然子网不是任意范围的 IP 地址,这是如何工作的?

你说得对,Subnet 不是任意范围的 IP 地址。它们实际上是从特定位置开始的长度为 2n 的范围。当提供单个 IP 地址时,Arcus 会设置 IP 的起始位置和相当于大小为 1 的子网的路由前缀。根据您的问题,您创建了一个具有以下属性的子网对象:

var ipAddress = IPAddress.Parse("192.168.1.1");
var subnet = new Subnet(ipAddress);

Assert.Equal(1, subnet.Length);
Assert.Equal(ipAddress, subnet.Single());
Assert.True(subnet.IsSingleIP);
Assert.Equal("192.168.1.1/32", subnet.ToString());