Browse Source

feat(docs): 添加IP2Region模块文档

pull/1049/head
feijie 1 year ago
parent
commit
e01f056338
  1. 106
      aspnet-core/framework/common/LINGYUN.Abp.IP2Region/README.EN.md
  2. 63
      aspnet-core/framework/common/LINGYUN.Abp.IP2Region/README.md

106
aspnet-core/framework/common/LINGYUN.Abp.IP2Region/README.EN.md

@ -0,0 +1,106 @@
# LINGYUN.Abp.IP2Region
## Introduction
`LINGYUN.Abp.IP2Region` is an ABP framework module based on IP2Region, providing IP address query functionality. This module integrates the IP2Region.Net library and provides convenient IP address query services.
## Features
* Provides IP address query service
* Supports multiple caching strategies
* Built-in IP database file
* Supports ABP virtual file system
## Installation
```bash
dotnet add package LINGYUN.Abp.IP2Region
```
## Usage
1. Add `[DependsOn(typeof(AbpIP2RegionModule))]` to your module class.
```csharp
[DependsOn(typeof(AbpIP2RegionModule))]
public class YourModule : AbpModule
{
// ...
}
```
2. Inject and use the IP query service:
```csharp
public class YourService
{
private readonly ISearcher _searcher;
public YourService(ISearcher searcher)
{
_searcher = searcher;
}
public async Task<string> SearchIpInfo(string ip)
{
return await _searcher.SearchAsync(ip);
}
}
```
## IP2Region.Net Library Description
### 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
## 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)
## Links
* [中文文档](./README.md)

63
aspnet-core/framework/common/LINGYUN.Abp.IP2Region/README.md

@ -1,8 +1,56 @@
# IP2Region.Net
# LINGYUN.Abp.IP2Region
.NET client library for IP2Region
## 介绍
## Installation
`LINGYUN.Abp.IP2Region` 是一个基于IP2Region的ABP框架模块,提供IP地址查询功能。本模块集成了IP2Region.Net库,提供了便捷的IP地址查询服务。
## 功能
* 提供IP地址查询服务
* 支持多种缓存策略
* 内置IP数据库文件
* 支持ABP虚拟文件系统
## 安装
```bash
dotnet add package LINGYUN.Abp.IP2Region
```
## 使用
1. 添加 `[DependsOn(typeof(AbpIP2RegionModule))]` 到你的模块类上。
```csharp
[DependsOn(typeof(AbpIP2RegionModule))]
public class YourModule : AbpModule
{
// ...
}
```
2. 注入并使用IP查询服务:
```csharp
public class YourService
{
private readonly ISearcher _searcher;
public YourService(ISearcher searcher)
{
_searcher = searcher;
}
public async Task<string> SearchIpInfo(string ip)
{
return await _searcher.SearchAsync(ip);
}
}
```
## IP2Region.Net 库说明
### Installation
Install the package with [NuGet](https://www.nuget.org/packages/IP2Region.Net)
@ -10,7 +58,7 @@ Install the package with [NuGet](https://www.nuget.org/packages/IP2Region.Net)
Install-Package IP2Region.Net
```
## Usage
### Usage
```csharp
using IP2Region.Net.Abstractions;
@ -18,6 +66,7 @@ using IP2Region.Net.XDB;
ISearcher searcher = new Searcher(CachePolicy , "your xdb file path");
```
### Cache Policy Description
| Cache Policy | Description | Thread Safe |
|-------------------------|------------------------------------------------------------------------------------------------------------|-------------|
@ -51,8 +100,6 @@ Apple M1, 1 CPU, 8 logical and 8 physical cores
| 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.
@ -60,3 +107,7 @@ Please make sure to update tests as appropriate.
## License
[Apache License 2.0](https://github.com/lionsoul2014/ip2region/blob/master/LICENSE.md)
## 链接
* [English document](./README.EN.md)
Loading…
Cancel
Save