这是基于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.2 KiB

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

dotnet add package LINGYUN.Abp.IP2Region

Usage

  1. Add [DependsOn(typeof(AbpIP2RegionModule))] to your module class.
[DependsOn(typeof(AbpIP2RegionModule))]
public class YourModule : AbpModule
{
    // ...
}
  1. Inject and use the IP query service:
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

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

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