perf:升级Ip2Region

This commit is contained in:
曾文豪
2023-02-20 14:28:13 +08:00
parent b79895aa56
commit 7fcc407514
10 changed files with 321 additions and 775 deletions

View File

@@ -3,12 +3,11 @@ package com.tiesheng.util.config;
import cn.hutool.core.io.FileUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.log.LogFactory;
import com.tiesheng.util.ip2region.Searcher;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
import java.io.FileNotFoundException;
import java.io.RandomAccessFile;
/**
* @author hao
@@ -17,8 +16,8 @@ import java.io.RandomAccessFile;
@ConfigurationProperties(prefix = "tiesheng.ip2region")
public class Ip2regionConfig {
private String dbUrl = "http://git.kepai365.com/zeng_wenhao/kepai-repo/raw/master/ipdb/ip2region.db";
private String dbPath = System.getProperty("user.dir") + "/runtime/ip2region/ip2region.db";
private String dbUrl = "http://git.kepai365.com/zeng_wenhao/kepai-repo/raw/master/ipdb/ip2region.xdb";
private String dbPath = System.getProperty("user.dir") + "/runtime/ip2region/ip2region.xdb";
///////////////////////////////////////////////////////////////////////////
// 逻辑方法
@@ -35,15 +34,20 @@ public class Ip2regionConfig {
/**
* 获取db文件
* 搜索ip
*
* @param ip
* @return
*/
public RandomAccessFile getDbAccessFile() throws FileNotFoundException {
if (!FileUtil.exist(dbPath)) {
downloadDbFile();
public String search(String ip) {
String region = "";
try {
Searcher searcher = Searcher.newWithFileOnly(dbPath);
region = searcher.search(ip);
searcher.close();
} catch (Exception ignored) {
}
return new RandomAccessFile(dbPath, "r");
return region;
}
///////////////////////////////////////////////////////////////////////////