ip2region/maker/java/ReadMe.md

48 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ip2region xdb java 生成实现
# 编译安装
通过 maven 来编译可运行 jar 程序:
```bash
# cd 到 maker/java 根目录
mvn clean compile package
```
然会会在当前目录的 target 目录下得到一个 ip2region-maker-{version}.jar 的打包文件。
# 数据生成
通过 `java -jar ip2region-maker-{version}.jar` 来生成 xdb 二进制文件:
```bash
➜ java git:(master) java -jar target/ip2region-maker-3.0.0.jar
ip2region xdb maker
java -jar ip2region-maker-{version}.jar [command options]
options:
--src string source ip text file path
--dst string destination binary xdb file path
--version string IP version, options: ipv4/ipv6, specify this flag so you don't get confused
--field-list string field index list imploded with ',' eg: 0,1,2,3-6,7
--log-level string set the log level, options: debug/info/warn/error
```
例如,通过默认的 data/ipv4_source.txt 原始数据,在当前目录生成一个 IPv4 的 ip2region_v4.xdb 二进制文件:
```bash
java -jar target/ip2region-maker-3.0.0.jar --src=../../data/ipv4_source.txt --dst=./ip2region_v4.xdb --version=ipv4
...
2025-09-13 00:33:06 INFO org.lionsoul.ip2region.xdb.Maker write done, dataBlocks: 13827, indexBlocks: (683843, 720464), indexPtr: (955933, 11042415)
2025-09-13 00:33:06 INFO org.lionsoul.ip2region.MakerApp Done, elapsed: 2 s
```
例如,通过默认的 data/ipv6_source.txt 有原始据,在当前目录生成一个 IPv6 的 ip2region_v6.xdb 二进制文件:
```bash
java -jar target/ip2region-maker-3.0.0.jar --src=../../data/ipv6_source.txt --dst=./ip2region_v6.xdb --version=ipv6
...
2025-09-13 00:35:34 INFO org.lionsoul.ip2region.xdb.Maker write done, dataBlocks: 120446, indexBlocks: (16789611, 16855074), indexPtr: (6585371, 647078145)
2025-09-13 00:35:34 INFO org.lionsoul.ip2region.MakerApp Done, elapsed: 67 s
```
生成过程中数据字段自定义请参考 [xdb-v4文件生成#自定义数据字段](https://ip2region.net/doc/data/ipv4_xdb_make#field-list)
# 数据 查询/bench 测试
已经完成开发的 [binding](../../binding/) 都有查询和 bench 测试程序以及使用文档,你可以使用你熟悉的语言的 searcher 进行查询测试或者bench测试来确认数据的正确性和完整性。