2025-11-22 18:49:57 +08:00
..
2025-11-21 13:14:42 +08:00
2022-07-06 18:00:09 +08:00
2025-11-22 18:49:57 +08:00
2025-11-22 13:10:24 +08:00

IP2Region.Net

.NET client library for IP2Region

Installation

Install the package with NuGet

Install-Package IP2Region.Net

Usage

using IP2Region.Net.Abstractions;
using IP2Region.Net.XDB;

ISearcher searcher = new Searcher(CachePolicy , "your xdb file path");

Cache Policy Description

Cache Policy Description Thread Safe
CachePolicy.Content Cache the entire xdb data. Yes
CachePolicy.VectorIndex Cache vecotorIndex to speed up queries and reduce system io pressure by reducing one fixed IO operation. Yes
CachePolicy.File Completely file-based queries Yes

XDB File Description

Generate using maker, or download pre-generated xdb files

ASP.NET Core Usage

services.AddIP2RegionService("your xdb file path", cachePolicy: CachePolicy.Content);

NET6/7

provider.GetRequiredService<ISearcher>()

NET8+ support keyed service

provider.GetRequiredKeyedService<ISearcher>("IP2Region.Net");

TargetFrameworks

netstandard2.0;netstandard2.1;net6.0;net7.0;net8.0;net9.0;net10.0

Performance

// * Summary *

BenchmarkDotNet v0.15.6, Windows 11 (10.0.26200.7171) 13th Gen Intel Core i7-13700 2.10GHz, 1 CPU, 24 logical and 16 physical cores .NET SDK 10.0.100 [Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v3 DefaultJob : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v3

Method Mean Error StdDev Gen0 Allocated
ContentIPv4 53.70 ns 0.296 ns 0.277 ns 0.0086 136 B
VectorIPv4 4,446.04 ns 18.673 ns 15.593 ns 0.0076 232 B
FileIPv4 6,712.40 ns 15.718 ns 13.934 ns 0.0153 264 B
ContentIPv6 145.53 ns 0.331 ns 0.277 ns 0.0126 200 B
VectorIPv6 7,058.39 ns 125.505 ns 117.398 ns 0.0381 712 B
FileIPv6 10,657.97 ns 53.907 ns 50.425 ns 0.0458 744 B

// * Hints * Outliers Benchmarks.VectorIPv4: Default -> 2 outliers were removed (4.55 us, 4.58 us) Benchmarks.FileIPv4: Default -> 1 outlier was removed (6.79 us) Benchmarks.ContentIPv6: Default -> 2 outliers were removed (148.08 ns, 152.27 ns)

// * Legends * Mean : Arithmetic mean of all measurements Error : Half of 99.9% confidence interval StdDev : Standard deviation of all measurements Gen0 : GC Generation 0 collects per 1000 operations Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B) 1 ns : 1 Nanosecond (0.000000001 sec)

// * Diagnostic Output - MemoryDiagnoser *

// ***** BenchmarkRunner: End ***** Run time: 00:02:06 (126.09 sec), executed benchmarks: 6

Global total time: 00:02:13 (133.47 sec), executed benchmarks: 6 // * Artifacts cleanup * Artifacts cleanup is finished

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

Apache License 2.0