public virtual bool IsIPAddressAllowed(string ipAddressString)
        {
            IPAddress ipAddress = IPAddress.Parse(ipAddressString);

            if (FilteringType == IPAddressFilteringAction.Allow)
            {
                //reject the IP if it is in either list
                if ((IPAddresses != null && IPAddresses.Any() && !IsIPAddressInList(ipAddress)) &&
                    (IPAddressRanges != null && IPAddressRanges.Any() && !IPAddressRanges.Any(r => ipAddress.IsInRange(r.StartIPAddress, r.EndIPAddress))))
                {
                    return(false);
                }
            }
            else
            {
                //reject the IP if it is in either list
                if ((IPAddresses != null && IPAddresses.Any() && IsIPAddressInList(ipAddress)) ||
                    (IPAddressRanges != null && IPAddressRanges.Any() && IPAddressRanges.Any(r => ipAddress.IsInRange(r.StartIPAddress, r.EndIPAddress))))
                {
                    return(false);
                }
            }
            return(true);
        }
 private bool IsIPAddressInList(IPAddress ipAddress)
 {
     return(IPAddresses.Any(x => x.Equals(ipAddress)));
 }