Files
tiesheng-springboot/springboot-util/src/main/java/com/tiesheng/util/config/Ip2regionConfig.java
2023-02-20 14:28:13 +08:00

73 lines
1.9 KiB
Java

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;
/**
* @author hao
*/
@Configuration
@ConfigurationProperties(prefix = "tiesheng.ip2region")
public class Ip2regionConfig {
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";
///////////////////////////////////////////////////////////////////////////
// 逻辑方法
///////////////////////////////////////////////////////////////////////////
@PostConstruct
public void downloadDbFile() {
if (!FileUtil.exist(dbPath)) {
LogFactory.get().info("download ip2region file start");
HttpUtil.downloadFile(dbUrl, dbPath);
LogFactory.get().info("download ip2region file finish");
}
}
/**
* 搜索ip
*
* @param ip
* @return
*/
public String search(String ip) {
String region = "";
try {
Searcher searcher = Searcher.newWithFileOnly(dbPath);
region = searcher.search(ip);
searcher.close();
} catch (Exception ignored) {
}
return region;
}
///////////////////////////////////////////////////////////////////////////
// setter\getter
///////////////////////////////////////////////////////////////////////////
public String getDbUrl() {
return dbUrl;
}
public void setDbUrl(String dbUrl) {
this.dbUrl = dbUrl;
}
public String getDbPath() {
return dbPath;
}
public void setDbPath(String dbPath) {
this.dbPath = dbPath;
}
}