Connection Blacklist Store Options

Read time 2 minutes Package: Nalix.Network
On this page

Namespace: Nalix.Network.Options
Assembly: Nalix.Network

ConnectionBlacklistStoreOptions configures the permanent IP and CIDR subnet blocklist (NetworkAccessList) checked by ConnectionGuard before accepting incoming connections.

Source Mapping

  • src/Nalix.Network/Options/ConnectionBlacklistStoreOptions.cs
  • src/Nalix.Network/Internal/Security/NetworkAccessList.cs
  • src/Nalix.Network/RateLimiting/Connection.Guard.cs

Defaults and Validation

PropertyTypeDefaultValidationDescription
EnabledbooltrueNoneEnables or disables loading and checking the permanent IP/CIDR blocklist file.
StoreFileNamestring"blacklist.txt"NoneText file name inside Directories.ConfigurationDirectory containing blocked IP addresses or CIDR ranges (one per line).
MaxBlacklistedIpsint100_000[ValueRange(10, 1_000_000)]Maximum number of blacklist entries loaded into memory (10..1,000,000).

Validate() runs this.ValidateDataAnnotations() and throws ValidationException when constraints are violated.

Configuration Examples

Programmatic Configuration

using Nalix.Hosting;
using Nalix.Network.Options;

INetworkApplicationBuilder builder = NetworkApplication.CreateBuilder();

builder.Configure<ConnectionBlacklistStoreOptions>(options =>
{
    options.Enabled = true;
    options.StoreFileName = "blacklist.txt";
    options.MaxBlacklistedIps = 200_000;
});

INI Configuration (default.ini)

[ConnectionBlacklistStore]
Enabled = true
StoreFileName = blacklist.txt
MaxBlacklistedIps = 100000

Blacklist File Format (blacklist.txt)

Place blacklist.txt in Directories.ConfigurationDirectory with one IPv4/IPv6 address or CIDR subnet per line (# comments are ignored):

# Block a single IPv4 address
192.0.2.44

# Block IPv4 and IPv6 CIDR subnets
198.51.100.0/24
2001:db8:dead::/48