Eigenverft.NetLib.Networking
1.0.0.5-gdfdd996480
dotnet add package Eigenverft.NetLib.Networking --version 1.0.0.5-gdfdd996480
NuGet\Install-Package Eigenverft.NetLib.Networking -Version 1.0.0.5-gdfdd996480
<PackageReference Include="Eigenverft.NetLib.Networking" Version="1.0.0.5-gdfdd996480" />
<PackageVersion Include="Eigenverft.NetLib.Networking" Version="1.0.0.5-gdfdd996480" />
<PackageReference Include="Eigenverft.NetLib.Networking" />
paket add Eigenverft.NetLib.Networking --version 1.0.0.5-gdfdd996480
#r "nuget: Eigenverft.NetLib.Networking, 1.0.0.5-gdfdd996480"
#:package Eigenverft.NetLib.Networking@1.0.0.5-gdfdd996480
#addin nuget:?package=Eigenverft.NetLib.Networking&version=1.0.0.5-gdfdd996480&prerelease
#tool nuget:?package=Eigenverft.NetLib.Networking&version=1.0.0.5-gdfdd996480&prerelease
Eigenverft.NetLib.Networking
Host-independent IP address normalization, CIDR parsing, and cached address matching for IPv4 and IPv6.
✨ At a glance
| Package | Eigenverft.NetLib.Networking |
| APIs | IPAddress.Normalize(), CidrNetwork, IPAddress.Matches(...) |
| Framework dependency | Microsoft.Extensions.Caching.Memory |
| ASP.NET Core dependency | None |
| Target frameworks | .NET 8 and .NET 10 |
| License | MIT |
📦 Installation
dotnet add package Eigenverft.NetLib.Networking
🚀 Quick start
Normalize IPv4-mapped IPv6 addresses, parse a network, and match an address against one CIDR or a list:
using System;
using System.Net;
using Eigenverft.NetLib.Networking;
IPAddress canonical = IPAddress.Parse("::ffff:192.168.1.25").Normalize();
Console.WriteLine(canonical.ToCanonicalString());
// 192.168.1.25
CidrNetwork network = CidrNetwork.Parse("192.168.1.123/24");
// normalized to 192.168.1.0/24
bool contained = network.Contains(canonical);
bool allowed = canonical.Matches(
new[] { "10.0.0.0/8", "192.168.1.123/24" });
🧭 Parsing and matching behavior
Normalize() maps IPv4-mapped IPv6 addresses to IPv4. Native IPv6 addresses remain unchanged, including their ScopeId; ToCanonicalString() formats the normalized address while preserving a native IPv6 scope identifier.
CidrNetwork.Parse(...) and TryParse(...) accept both IPv4 and IPv6 CIDRs and clear host bits in the supplied address. For example, 192.168.1.123/24 becomes 192.168.1.0/24. Contains(...) returns false for an address from the other address family.
IPAddress.Matches(...) accepts one CIDR or a collection. A literal * matches every address; empty and invalid entries do not match. Parsed CIDRs, including invalid text, and repeated address/list evaluations are cached internally. Collection cache keys are independent of entry order.
🎯 Target frameworks
The package targets net8.0 and net10.0.
🔗 Project links
📄 License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Caching.Memory (>= 10.0.0)
-
net8.0
- Microsoft.Extensions.Caching.Memory (>= 8.0.1)
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0.5-gdfdd996480 | 0 | 9/29/2026 |
| 1.0.0.5-g17613f8942 | 0 | 9/29/2026 |
| 1.0.0.3-g28e841270d | 0 | 9/28/2026 |
| 1.0.0.2-gbac57d8b97 | 0 | 9/11/2026 |
| 1.0.0.2-g9537b96514 | 0 | 9/11/2026 |
Initial capability package extracted from Eigenverft.NetLib.Infrastructure.