/// <summary> /// Initializes a new instance of the <see cref="IpV4Network" /> class. /// </summary> /// <param name="address">The IPV4 address.</param> /// <param name="mask">The subnet mask in IPV4 format.</param> public IpV4Network(IpV4Address address, int mask) { Address = address; var octet1 = 0; var octet2 = 0; var octet3 = 0; var octet4 = 0; var bits = string.Format( CultureInfo.InvariantCulture, "{0}{1}", new string('1', mask), new string('0', 32 - mask)); if (mask >= 1 && mask <= 8) { octet1 = Convert.ToInt32(bits.Substring(0, 8), 2); } else if (mask >= 9 && mask <= 16) { octet1 = 255; octet2 = Convert.ToInt32(bits.Substring(8, 8), 2); } else if (mask >= 17 && mask <= 24) { octet1 = 255; octet2 = 255; octet3 = Convert.ToInt32(bits.Substring(16, 8), 2); } else if (mask >= 25 && mask <= 32) { octet1 = 255; octet2 = 255; octet3 = 255; octet4 = Convert.ToInt32(bits.Substring(24), 2); } Netmask = new IpV4Address(octet1, octet2, octet3, octet4); }
/// <summary> /// Initializes a new instance of the <see cref="IpV4Network" /> class. /// </summary> /// <param name="address">The IPV4 address.</param> /// <param name="mask">The subnet mask in IPV4 format.</param> public IpV4Network(IpV4Address address, IpV4Address mask) { Address = address; Netmask = mask; }