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))); }