/// <summary> /// Initialize network range. /// </summary> /// <param name="networkAddr">Network address.</param> /// <param name="broadcastAddr">Broadcast address.</param> /// <param name="prefix">Prefix number is less than 32.</param> /// <param name="subnetBit">Borrowed bits.</param> /// <param name="ipClass">Class of IPv4 address.</param> public NetworkRange(IPv4Address networkAddr, IPv4Address broadcastAddr, int prefix, int subnetBit, IPv4Class ipClass) { NetworkIDAddress = networkAddr; Prefix = prefix; SubnetBit = subnetBit; Class = ipClass; }
/// <summary> /// Initialize network range. /// </summary> /// <param name="networkAddr">Network address.</param> /// <param name="prefix">Prefix number is less than 32.</param> /// <param name="subnetBit">Class of IPv4 address.</param> public NetworkRange(IPv4Address networkAddr, int prefix, int subnetBit) { NetworkIDAddress = networkAddr; Prefix = prefix; SubnetBit = subnetBit; Class = NetworkIDAddress.Class; }
/// <summary> /// Returns broadcast address of current network range. /// </summary> /// <returns></returns> private IPv4Address ToBroadcastAddress() { StringBuilder binNetworkAddr = new StringBuilder(_networkIDAddress.ToBinaryString()); for (int i = _prefix + _subnetBit; i < 32; i++) binNetworkAddr[i] = '1'; IPv4Address broadcast = new IPv4Address(IPv4Address.ToOctetFromBinaryString(binNetworkAddr.ToString()), new SubnetMask(_prefix + _subnetBit), _class); return broadcast; }