mirror of
https://github.com/netfun2000/ip2region.git
synced 2026-02-27 09:44:31 +08:00
62 lines
2.3 KiB
Markdown
62 lines
2.3 KiB
Markdown
# IP2Region.Net
|
|
|
|
.NET client library for IP2Region
|
|
|
|
## Installation
|
|
|
|
Install the package with [NuGet](https://www.nuget.org/packages/IP2Region.Net)
|
|
|
|
```bash
|
|
Install-Package IP2Region.Net
|
|
```
|
|
|
|
## Usage
|
|
|
|
```csharp
|
|
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](https://github.com/lionsoul2014/ip2region/tree/master/maker/csharp), or [download](https://github.com/lionsoul2014/ip2region/blob/master/data/ip2region.xdb) pre-generated xdb files
|
|
|
|
## ASP.NET Core Usage
|
|
|
|
```csharp
|
|
services.AddSingleton<ISearcher>(new Searcher(CachePolicy , "your xdb file path"));
|
|
```
|
|
|
|
## Performance
|
|
|
|
``` ini
|
|
|
|
BenchmarkDotNet=v0.13.2, OS=macOS 13.4.1 (c) (22F770820d) [Darwin 22.5.0]
|
|
Apple M1, 1 CPU, 8 logical and 8 physical cores
|
|
.NET SDK=7.0.306
|
|
[Host] : .NET 6.0.20 (6.0.2023.32017), Arm64 RyuJIT AdvSIMD
|
|
DefaultJob : .NET 6.0.20 (6.0.2023.32017), Arm64 RyuJIT AdvSIMD
|
|
|
|
|
|
```
|
|
| Method | Mean | Error | StdDev |
|
|
|-------------------------|-----------:|---------:|---------:|
|
|
| CachePolicy_Content | 155.7 ns | 0.46 ns | 0.39 ns |
|
|
| CachePolicy_File | 2,186.8 ns | 34.27 ns | 32.06 ns |
|
|
| CachePolicy_VectorIndex | 1,570.3 ns | 27.53 ns | 22.99 ns |
|
|
|
|
|
|
|
|
## 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](https://github.com/lionsoul2014/ip2region/blob/master/LICENSE.md) |