0
点赞
收藏
分享

微信扫一扫

新报: 根据IP获取物理地址不需要调用接口啦

杏花疏影1 2022-05-24 阅读 57

一、 复制data文件夹到自己的项目当中

可以进行加载到这个文件即可 博主放入在项目的根目录当中

请移步Gitee pull 该文件 ​​https://gitee.com/yangbuyi/ip_file​​

​​https://gitee.com/yangbuyi/ip_file​​

获取点击量来一波 ​​https://www.yangbuyi.top/login.html​​

​​https://www.yangbuyi.top/login.html​​

新报: 根据IP获取物理地址不需要调用接口啦_jar

带入maven依赖 因为这个编辑器的原因 复制依赖 显示不出来淦!!!! 图片自己打吧

org.lionsoulip2region1.7.2

新报: 根据IP获取物理地址不需要调用接口啦_git_02

二、最重要的一步 编译地理位置

找到自己的项目地址

执行打开cmd 执行这段代码

java -Dfile.encoding=utf-8 -jar dbMaker-1.2.2.jar -src ./data/ip.merge.txt -region ./data/global_region.csv

java -Dfile.encoding=utf-8 -jar dbMaker-1.2.2.jar -src ./data/ip.merge.txt -region ./data/global_region.csv

新报: 根据IP获取物理地址不需要调用接口啦_java_03

新报: 根据IP获取物理地址不需要调用接口啦_jar_04

请跟着一步步来

新报: 根据IP获取物理地址不需要调用接口啦_java_05

新报: 根据IP获取物理地址不需要调用接口啦_git_06

代码开始 创建iputils

package top.yangbuyi.system.webapi;

import org.lionsoul.ip2region.DataBlock;
import org.lionsoul.ip2region.DbConfig;
import org.lionsoul.ip2region.DbSearcher;
import org.lionsoul.ip2region.Util;

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Method;
import java.net.URLDecoder;

/**
* description: 杨不易网站 :www.yangbuyi.top
* program: yangbuyi-erp-2020
* ClassName: iputils
* create: 2020-07-10 09:20
*
* @author: yangbuyi
* @since: JDK1.8
* @iputils:
**/

/**
* 具体请看 SQL当中的 data文件 和jar包
* 通过下面语句进行 编译 地理位置
* java -jar dbMaker-1.2.2.jar -src ./data/ip.merge.txt -region ./data/global_region.csv
*/

public class iputils {

public static String getCityInfo(String ip) throws UnsupportedEncodingException {
//db
String dbPath = new File("SQL/data/ip2region.db").getPath();
dbPath = URLDecoder.decode(dbPath, "UTF-8");
File file = new File(dbPath);
if (file.exists() == false) {
System.out.println("Error: Invalid ip2region.db file");
}
//查询算法
int algorithm = DbSearcher.BTREE_ALGORITHM; //B-tree
//DbSearcher.BINARY_ALGORITHM //Binary
//DbSearcher.MEMORY_ALGORITYM //Memory
try {
DbConfig config = new DbConfig();
DbSearcher searcher = new DbSearcher(config, dbPath);
//define the method
Method method = null;
switch (algorithm) {
case DbSearcher.BTREE_ALGORITHM:
method = searcher.getClass().getMethod("btreeSearch", String.class);
break;
case DbSearcher.BINARY_ALGORITHM:
method = searcher.getClass().getMethod("binarySearch", String.class);
break;
case DbSearcher.MEMORY_ALGORITYM:
method = searcher.getClass().getMethod("memorySearch", String.class);
break;
}
DataBlock dataBlock = null;
if (Util.isIpAddress(ip) == false) {
System.out.println("Error: Invalid ip address");
}
dataBlock = (DataBlock) method.invoke(searcher, ip);
String decode = URLDecoder.decode(dataBlock.getRegion(), "UTF-8");
return decode;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

public static void main(String[] args) throws Exception {
System.err.println(iputils.getCityInfo("106.18.167.102"));
}

}

最后 测试代码

新报: 根据IP获取物理地址不需要调用接口啦_git_07

太累了吧!!!!

你的压力来源于无法自律,只是假装努力,现状跟不上内心欲望,所以你焦虑又恐慌。——杨不易




举报

相关推荐

0 条评论