From 8494e1075dba5da6139afd03a89a4c6f3ed38d97 Mon Sep 17 00:00:00 2001 From: lionsoul Date: Tue, 2 Oct 2018 11:14:31 +0800 Subject: [PATCH] Add DbSearcher(dbConfig, dbBinStr) construct method specified by Wendal at https://gitee.com/lionsoul/ip2region/issues/IILFL --- .../java/org/lionsoul/ip2region/DbSearcher.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/binding/java/src/main/java/org/lionsoul/ip2region/DbSearcher.java b/binding/java/src/main/java/org/lionsoul/ip2region/DbSearcher.java index f85ab4f..340ab62 100644 --- a/binding/java/src/main/java/org/lionsoul/ip2region/DbSearcher.java +++ b/binding/java/src/main/java/org/lionsoul/ip2region/DbSearcher.java @@ -58,6 +58,23 @@ public class DbSearcher raf = new RandomAccessFile(dbFile, "r"); } + /** + * construct method with self-define std ip2region bianry string support + * Thanks to the issue from Wendal at https://gitee.com/lionsoul/ip2region/issues/IILFL + * + * @param dbConfig + * @param dbBinStr + */ + public DbSearcher(DbConfig dbConfig, byte[] dbBinStr) + { + this.dbConfig = dbConfig; + this.dbBinStr = dbBinStr; + + firstIndexPtr = Util.getIntLong(dbBinStr, 0); + lastIndexPtr = Util.getIntLong(dbBinStr, 4); + totalIndexBlocks = (int)((lastIndexPtr - firstIndexPtr)/IndexBlock.getIndexBlockLength()) + 1; + } + /** * get the region with a int ip address with memory binary search algorithm *