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; } }