Пример #1
0
        /// <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);
        }
Пример #2
0
 /// <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;
 }