这是基于vue-vben-admin 模板适用于abp Vnext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

3.3 KiB

LINGYUN.Abp.IP2Region

介绍

LINGYUN.Abp.IP2Region 是一个基于IP2Region的ABP框架模块,提供IP地址查询功能。本模块集成了IP2Region.Net库,提供了便捷的IP地址查询服务。

功能

  • 提供IP地址查询服务
  • 支持多种缓存策略
  • 内置IP数据库文件
  • 支持ABP虚拟文件系统

安装

dotnet add package LINGYUN.Abp.IP2Region

使用

  1. 添加 [DependsOn(typeof(AbpIP2RegionModule))] 到你的模块类上。
[DependsOn(typeof(AbpIP2RegionModule))]
public class YourModule : AbpModule
{
    // ...
}
  1. 注入并使用IP查询服务:
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

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.AddSingleton<ISearcher>(new Searcher(CachePolicy , "your xdb file path"));

Performance


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

链接