73 lines
1.9 KiB
Java
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;
|
|
}
|
|
}
|