Example #1
0
        public static bool Contains(this IIpRange range, IPAddress address)
        {
            if (address.AddressFamily != range.Start.AddressFamily)
            {
                return(false);
            }

            var lowerBytes   = range.Start.GetAddressBytes();
            var upperBytes   = range.End.GetAddressBytes();
            var addressBytes = address.GetAddressBytes();

            bool lowerBoundary = true, upperBoundary = true;

            for (var i = 0;
                 i < lowerBytes.Length &&
                 (lowerBoundary || upperBoundary);
                 i++)
            {
                if ((lowerBoundary && addressBytes[i] < lowerBytes[i]) ||
                    (upperBoundary && addressBytes[i] > upperBytes[i]))
                {
                    return(false);
                }

                lowerBoundary &= (addressBytes[i] == lowerBytes[i]);
                upperBoundary &= (addressBytes[i] == upperBytes[i]);
            }

            return(true);
        }
Example #2
0
 public static DbIPRange FromOther(IIpRange range)
 {
     return(new DbIPRange(range.Start, range.End));
 }