纯真IP库 Java使用

1、介绍

纯真社区版IP库是免费和公开的。该IP库文件同时支持IPv4和IPv6地理位置数据,具有占用内存小,访问速度快,数据更新快,集成方便快捷的特点。

2、下载

第一步、在纯真官网(https://www.cz88.com)上注册并登录。在菜单中点击离线库,选择“纯真社区版IP库”。
在这里插入图片描述
第二步、在纯真社区版IP库介绍页面上(https://www.cz88.com/geo-public),任意选取一种方式进行授权。

第三步、文件下载,下载CZCB格式,并复制密钥

3、使用 (Java Maven 项目)

添加依赖

<dependency>
    <groupId>net.cz88</groupId>
    <artifactId>czdb-search</artifactId>
    <version>${cz88db.version}</version>
</dependency>

第一步、 创建实例

DbSearcher 支持2种查询类型:MEMORY 和 BTREE。

MEMORY:此模式是线程安全的,将数据存储在内存中。
BTREE:此模式使用 B-tree 数据结构进行查询。它不是线程安全的。不同的线程可以使用不同的查询对象。
你可以在创建 DbSearcher 实例时选择查询类型。

// 线程安全
DbSearcher searcher = new DbSearcher("数据库文件路径", QueryType.MEMORY, "密钥");
// 线程不安全
DbSearcher searcher = new DbSearcher("数据库文件路径", QueryType.BTREE, "密钥");

第二步、 查询

使用 search 方法来根据提供的 IP 地址在数据库中搜索数据。

String region = searcher.search("IP地址");

如果搜索成功,search 方法将返回找到的数据块的区域。如果搜索失败,它将返回 null。

返回的字符串格式为 “国家–省份–城市–区域 ISP”。例如,对于一个位于中国上海市虹口区的IP地址,返回的字符串可能是 “中国–上海–上海–虹口区 电信”。如果搜索失败,它将返回 null。

第三步、 释放资源

查询结束释放所有使用的资源,并关闭对数据库文件的访问。
什么时候释放取决于应用逻辑,并非是每次查询结束后就必须关闭,也可以是线程结束时才需要关闭数据库(每个线程一个DbSearcher )。

 searcher.close();

注意事项:

高并发环境下使用 BTREE 查询模式,可能会导致打开的文件过多的错误,此情况可以通过增加内核中允许打开的最大文件数(fs.file-max)的方式进行控制;或者直接使用MEMORY方式进行查询。

官方支持编程语言(截至到2024-11-15)

★ JAVA语言 https://github.com/tagphi/czdb-search-java

★ PHP语言 https://github.com/tagphi/czdb_searcher_php

★ C语言 https://github.com/tagphi/czdb-search-c

★ Node.js 语言解析程序 https://github.com/limkim0530/czdb-search-node

★ Python 语言解析程序 https://github.com/tagphi/czdb_searcher_python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值