离线版IP归属地查询

news2024/11/25 18:56:09

 这里简单介绍一下Ip2regionSearcher是什么?

ip2region 是准确率 99.9% 的 IP 地址定位库,0.0x毫秒级查询,提供了 Java、PHP、C、Python、Node.js、Golang、C#、Rust、Lua的查询绑定和 Binary、B树、内存三种查询算法!

Setp1:导入依赖 

<dependency>
    <groupId>net.dreamlu</groupId>
    <artifactId>mica-ip2region</artifactId>
    <version>2.5.6</version>
</dependency>
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.11</version>
</dependency>

提示:Ip2regionSearcher的和hutool工具包依赖包,这里导入hutool为了后期利用获取IP工具类

Setp2:编写测试接口 

import cn.hutool.extra.servlet.ServletUtil;
import lombok.RequiredArgsConstructor;
import net.dreamlu.mica.ip2region.core.Ip2regionSearcher;
import net.dreamlu.mica.ip2region.core.IpInfo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;

/**
 * <p>
 * 测试控制器
 * <p>
 *
 * @className: XController
 * @author: BertXie
 * @create: 2023-01-09 11:40
 */

@RestController
@RequiredArgsConstructor
public class XController {

    private final Ip2regionSearcher searchSearcher;

    @GetMapping("/ip")
    public String getHomeLocation(HttpServletRequest request) {
        IpInfo ipInfo = searchSearcher.memorySearch(ServletUtil.getClientIP(request));
        return ipInfo != null ? ipInfo.getCity() : "未知星球";
    }

}

注意:这里注入了Ip2regionSearcher对象,并使用了memorySearch方法,会返回一个IP详情对象,还用到了Hutool工具获取IP的方法ServletUtil.getClientIP

测试效果图

提示:这里我是写的接口,你也可以直接写一个测试类,填入IP即可 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1021397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【基于MBD开发模式的matlab持续集成(一)】

基于MBD开发模式的matlab持续集成 引言 或许是感受到行业内卷的愈加激烈&#xff0c;在传统制造和高新技术相结合的新能源领域对软件工程开发的要求也愈加提高&#xff0c;尤其在互联网已经大行 其道的敏捷开发&#xff0c;便顺其自然的被新能源的老板们所看重。 概述 本文…

moea项目的问题解决方案

报错1&#xff1a; (moea) aaaASUS:~/ML/paper/APG-SMOEA/code$ sh test.sh python: cant open file /home/aaa/ML/paper/APG-SMOEA/code/run_GAN-adjlvxm.py: [Errno 2] No such file or directory Finish GAN-adjlvxm on 1修改了run_benchmark.sh的line22->line23 报错2…

android去掉 原生锁屏

1. /frameworks/base/core/java/com/android/internal/widget/LockPatternUtils.java 直接 return true 2./packages/apps/Settings/src/com/android/settings/password/ScreenLockType.java 都改成 none 类型

JVM——9.对象的访问定位方式

前一篇文章&#xff0c;我们详细的了解了对象在堆内存中是如何分配的。现在&#xff0c;对象已经分配好了&#xff0c;那么要如何访问定位呢&#xff1f;下面&#xff0c;我们一起来了解一下。 目录 1.概述 2.句柄法 3.直接指针法 4.小结 1.概述 创建对象是为了使用该对象…

Lnmp架构之mysql数据库实战1

1、mysql数据库编译 编译成功 2、mysql数据库初始化 配置数据目录 全局文件修改内容 生成初始化密码并进行初始化设定 3、mysql主从复制 什么是mysql的主从复制&#xff1f; MySQL的主从复制是一种常见的数据库复制技术&#xff0c;用于将一个数据库服务器&#xff08;称为主…

MyBatisPlus(四)表映射:@TableName

表映射 数据库中的表名&#xff0c;和项目中的实体类名&#xff0c;并不相同&#xff0c;则需要通过注解TableName来进行映射。 未映射前报错示例 数据库表名&#xff1a;tb_user 实体类名&#xff1a;User 测试代码 Autowiredprivate UserMapper userMapper;Testvoid selec…

git 工作区和版本库和暂存区差异比较

一般比较代码差距习惯用Beyond Compare进行比较,然后进行一些定位和解bug操作,现使用了git 工具进行代码比较. &#xff08;1&#xff09;比较两个版本库之间的差距 git log 得到commit SHA git diff SHA1 SHA2 (2)比较工作区和版本库差异 git diff HEAD 或 git log git …

计算机网络分类

按照覆盖范围分类 &#xff08;1&#xff09;个域网&#xff1a;通常覆盖范围在1&#xff5e;10m。 &#xff08;2&#xff09;局域网&#xff1a;通常覆盖范围在10m&#xff5e;1km。 &#xff08;3&#xff09;城域网&#xff1a;覆盖范围通常在5&#xff5e;50 km 。 &…

程序安全漏洞

一、SQL注入 一种代码注入技术&#xff0c;一般被应用于攻击web应用程序。 通过在web应用接口传入一些特殊参数字符&#xff0c;来欺骗应用服务器&#xff0c;执行恶意的SQL命令&#xff0c;以达到非法获取系统信息的目的。它目前是黑客对数据库进行攻击的最常用手段之一。 常…

【线性回归、岭回归、Lasso回归分别预测患者糖尿病病情】数据挖掘实验一

Ⅰ、项目任务要求 任务描述&#xff1a;将“diabetes”糖尿病患者数据集划分为训练集和测试集&#xff0c;利用训练集分别结合线性回归、岭回归、Lasso回归建立预测模型&#xff0c;再利用测试集来预测糖尿病患者病情并验证预测模型的拟合能力。具体任务要求如下&#xff1a; …

服务网格和微服务架构的关系:理解服务网格在微服务架构中的角色和作用

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

现在进入广告行业好做吗?

广告行业真的很好&#xff0c;大家快来…… 在这里你可以无限发挥你的创意和想象力&#xff0c;有趣的同事&#xff0c;不刻板的工作内容&#xff0c;与爱豆合作&#xff0c;偶尔见见明星&#xff0c;出入城市CBD&#xff0c;一身名牌&#xff0c;精美PPT挥斥方遒&#xff0c;…

grafana结合Skywalking追踪Trace(一)

SW应用中对Trace的跟踪一直占有重要的地位&#xff0c;即可以用户指定的tag值&#xff0c;可以筛选出感兴趣的trace(跟踪链)&#xff0c;用户可以通过跟踪链追踪各个Span的详细情况。 但是在使用SW OAP原生页面中会存在两个问题&#xff1a; 1&#xff09; Trace数量太多了&…

Linux Ubuntu命令行快速配置C++开发环境

本文介绍在Linux操作系统的Ubuntu版本中&#xff0c;基于命令行&#xff0c;快速配置C 编辑、编译、运行的代码开发环境的简便方法。 在之前的文章Linux操作系统Ubuntu 22.04配置Visual Studio Code与C代码开发环境的方法(https://blog.csdn.net/zhebushibiaoshifu/article/det…

Springboot项目升级2.2.x升至2.7.x

依赖管理 spring-boot-starter-parent 升级为2.7.1 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId> <!-- 升级为2.7.x的版本--><version>2.7.1</version>…

【STM32】WWDG—窗口看门狗

在一个设定好的区间进行喂狗 与独立看门狗不同的是&#xff0c;独立看门狗只需要在计时到0之前喂狗。而窗口看门狗需要在设定好的区间内进行喂狗&#xff0c;否则进行reset。 下限 递减计数器不断的往下递减计数&#xff0c;当减到一个固定值 0X40时还不喂狗的话&#xff0c…

《ADS2011射频电路设计与仿真实例》功率放大器设计的输入输出匹配

徐兴福这本书的6.6 Smith圆图匹配这一节中具体匹配时&#xff0c;直接给出了电容与串联微带的值&#xff0c;没有给出推导过程&#xff0c;我一开始以为是省略了详细推导过程&#xff0c;后来发现好像基本上是可以随便自己设的。以输入匹配&#xff08;书本6.6.4输入匹配电路的…

​安徽农业大学《乡村振兴战略下传统村落文化旅游设计》许少辉博士新著——2023学生开学季辉少许流动站

​安徽农业大学《乡村振兴战略下传统村落文化旅游设计》许少辉博士新著——2023学生开学季辉少许流动站

Archicad 26 for Mac - 打造卓越的3D建模工具

随着建筑设计和规划的日益复杂化&#xff0c;寻找一款功能强大且易于使用的3D建模工具变得至关重要。而Archicad 26 for Mac正是您在建筑设计领域中的理想选择。无论您是一名建筑师、室内设计师还是建筑工程师&#xff0c;Archicad 26都将成为您的得力助手。 作为一款全球领先…

计算机竞赛 深度学习 python opencv 动物识别与检测

文章目录 0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存…