|
需求:现在很多网站的评论区都可以显示作者的归属地址,也就是该作者发表评估的 IP 归属地址,通过 IP 查询地址,一般有两种方式,一种是本地定期更新 IP 地址库,另一种是调一些 API 接口(免费或者付费的)。
之前写过使用 GeoLite2 离线查询 IP 地址,现在好像已经收费了,如下:
当然,还有一些免费的 IP 库(纯真免费IP库:https://www.cz88.net/help?id=free)
本文使用 ip2region 数据库来实现通过 IP 查询地址,ip2region v2.0 - 是一个离线IP地址定位库和IP定位数据管理框架,10微秒级别的查询效率,提供了众多主流编程语言的 xdb 数据生成和查询客户端实现。
GitHub 地址:https://github.com/lionsoul2014/ip2region
每个ip数据段的区域信息都固定了格式:国家|区域|省份|城市|ISP,只有中国的数据绝大部分细分确实到了城市,其他国家数据只能定位到国家,后前面的选项全部为0。
首先,下载“ip2region.xdb”文件,地址:https://github.com/lionsoul2014/ip2region/blob/master/data/ip2region.xdb
新建一个 .NET 6 的控制台应用,使用 nuget 引入别人写好的类库,命令如下:
代码如下:
如果是 ASP.NET Core 网站,可以使用如下代码注册服务:
其中构造函数中 CachePolicy 有三种配置,如下:
namespace IP2Region.Net.XDB;
public enum CachePolicy
{
/// <summary>
/// no cache , not thread safe!
/// </summary>
File,
/// <summary>
/// cache vector index , reduce the number of IO operations , not thread safe!
/// </summary>
VectorIndex,
/// <summary>
/// default cache policy , cache whole xdb file , thread safe
/// </summary>
Content
}
(完)
|
上一篇:.NET Core 高性能队列 Channels 使用下一篇:【转】百人研发团队百亿销售规模的技术架构实践分享
|