System.Net.Topology.IPAddressExtensions.GetHostIdentifier C# (CSharp) Method

GetHostIdentifier() public static method

Gets the host identifier (rest) an T:System.Net.IPAddress.
public static GetHostIdentifier ( this address, NetMask mask ) : IPAddress
address this The address
mask NetMask The net mask of the network
return IPAddress
        public static IPAddress GetHostIdentifier(this IPAddress address, NetMask mask)
        {
            if (address == null)
                throw new ArgumentNullException(nameof(address));
            if (mask == null)
                throw new ArgumentNullException(nameof(mask));
            if (address.AddressFamily != Sockets.AddressFamily.InterNetwork)
                throw new NotSupportedException(OnlyIPv4Supported);

            var maskBits = mask.GetMaskBytes();
            var ipBits = address.GetAddressBytes();

            // ~Mask & IP
            var retVal = maskBits.Not().And(ipBits);
            var bytes = new byte[NetMask.MaskLength];
            Buffer.BlockCopy(retVal, 0, bytes, 0, bytes.Length);

            return new IPAddress(bytes);
        }