一、 复制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

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


            org.lionsoul
ip2region
1.7.2

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

找到自己的项目地址

执行打开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



请跟着一步步来



代码开始 创建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获取物理地址不需要调用接口啦的更多相关文章

  1. PHP根据ip获取地理位置(通过高德地图接口)

    PHP根据ip获取地理位置(通过高德地图接口)<pre>//restapi.amap.com/v3/ip?key=2004f145cf3a39a72e9ca70ca4b2a1dc& ...

  2. ThinkPHP使用纯真IP获取物理地址时中文乱码问题

    今天在用ThinkPHP通过纯真IP获取地址时,发现输出结果中文乱码,如图: 经查发现ThinkPHP的IpLocation.class.php类文件中说明:“由于使用UTF8编码 如果使用纯真IP地 ...

  3. php根据IP获取所在省份-百度api接口

    这里用的file_put_contents,你也可以用别的,直接怼代码: //拼接传递的参数 $getData = array( 'query' => '127.0.0.1', 'resourc ...

  4. ASP.NET根据IP获取省市地址

    1.在网站的跟路径下面添加 QQWry.dat 文件,这个文件是IP数据库文件 2.添加以下一个类 IPScanner     C# 代码   复制 public class IPScanner { ...

  5. 几种获取IP 根据IP获取地址的方法 JS,第三方 新浪 网易 腾讯

    第一种是利用纯真ip数据库,这个可以在网上找到很多,缺点是更新有点慢. 第二种是利用门户网站的接口 目前已知的有腾讯.新浪.网易.搜狐和Google提供IP地址查询API,但是找得到的只有腾讯.新浪和 ...

  6. 腾讯新浪通过IP地址获取当前地理位置(省份)的接口

    腾讯新浪通过IP地址获取当前地理位置(省份)的接口  腾讯的接口是 ,返回数组 http://fw.qq.com/ipaddress 返回值 var IPData = new Array(" ...

  7. PHP通过IP 获取 地理位置(实例)

    发布:JB02   来源:脚本学堂  分享一例php代码,实现通过IP地址获取访问者的地理位置,在php编程中经常用到,有需要的朋友参考下吧.本节内容:PHP通过IP获取地理位置 例子: 复制代码代码 ...

  8. PHP通过IP 获取 地理位置(实例代码)

    发布:JB02   来源:脚本学堂 分享一例php代码,实现通过IP地址获取访问者的地理位置,在php编程中经常用到,有需要的朋友参考下吧.本节内容:PHP通过IP获取地理位置 例子: 复制代码代码示 ...

  9. 根据ip获取用户地理位置

    各大网站都提供根据ip获取用户地理位置信息,这里以新浪的接口为例子 接口地址为:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js ...

  10. 根据IP获取所在的国家城市

    根据IP获取所在的国家城市 新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪多地域测试方法:htt ...

随机推荐

  1. Azure Data Factory(八)数据集验证之服务主体(Service Principal)

    一,引言 如下图所示,今天我们接着上一篇内容,继续讲解 Azure Data Factory 中的数据集连接服务的认证方式:Service Principal 关于 Service Principal ...

  2. 「luogu - P3158」「cqoi 2011」放棋子

    link. 解读一下,大概就是一种颜色放进去就会占据一行一列,dp 状态就好想了:\(f_{i,j,k}\) 表示恰好用完前 \(k\) 种颜色的所有棋子,占据了 \(i\) 行 \(j\) 列的方案 ...

  3. Record - Dec. 2st, 2020 - Exam. REC

    Prob. 1 Desc. & Link. 有一个基础想法,即一次操作三可以用一次操作一加上一次操作二来实现,然后他又没让我们最小化操作次数,所以我们令 \(M=\min\{A+R,M\}\) ...

  4. 在deepin上使用Fleet开发SpringBoot 3.0.0项目

    前言 Fleet被称为是由 JetBrains 打造的下一代 IDE,目前出于公测状态,可以免费下载使用. SpringBoot 3.0.0最小支持是JDK 17,这或许是对于JDK8的断舍离迈出的重 ...

  5. tensorboard可视化点云

    tensorboard可视化点云 用 tensorboard 自带的 add_mesh 方法:支持可视化点云和网格,参考链接: tensorflow 网站的tensorboard pytorch 网站 ...

  6. 记一次Redis Cluster Pipeline导致的死锁问题

    作者:vivo 互联网服务器团队- Li Gang 本文介绍了一次排查Dubbo线程池耗尽问题的过程.通过查看Dubbo线程状态.分析Jedis连接池获取连接的源码.排查死锁条件等方面,最终确认是因为 ...

  7. 【源码解读(一)】EFCORE源码解读之创建DBContext查询拦截

    引言 在网上很少看到有关于系统讲解EFCore源码的,可能大概也许是因为EFCore的源码总体是没有asp.net web的源码流程清晰,正如群友所说,EFCore的源码大致看起来有点凌乱,与其说凌乱 ...

  8. umich cv-4-2 经典卷积网络架构

    这节课中主要讨论了卷积神经网络的发展历史以及几种经典结构是如何构建的 卷积网络经典结构 AlexNet VGG GoogleNet Residual Network AlexNet 在2012年的时候 ...

  9. P3214 [HNOI2011] 卡农 题解

    感觉不是很麻烦,可能就组合排列转化绕一点... 抽象化题意 给定 \(n\) 个元素,从中选出 \(m\) 个集合,要求: 集合不为空,集合里不能有相同的元素 \(m\) 个集合都互不相同 所有元素被 ...

  10. Ubuntu22.04 rc-local 配置开机自启动脚本

    1. rc-local服务简介Linux中的rc-local服务是一个开机自动启动的,调用开发人员或系统管理员编写的可执行脚本或命令的,它的启动顺序是在系统所有服务加载完成之后执行. ubuntu22 ...