获取ip所在城市

简介: 本文介绍了如何在SpringBoot应用中通过IP地址快速获取用户的国家、省份和城市信息。首先,通过引入GeoLite2 City数据库并整合相关依赖,接着下载并配置GeoLite2 City数据库文件。然后,创建地址获取工具类和Controller接口,最后进行测试以确保功能正常。此方法简单高效,适用于多种应用场景。

   有时候我们会有这样的需求,通过一个ip地址获取用户所在国家,省份和城市。接下来我会详细介绍在SpringBoot应用中如何快速实现该功能。


GeoLite2 City介绍

   GeoLite2 City是一个轻量数据库,它存储了常见ip地址与地理位置的对应关系,通过它我们可以轻松通过ip地址找到对应城市。所以在项目中只需整合它即可完成功能。

63b9d969d79ff55c638cf2d41b950a9.png

1.引入依赖

<dependency>

<groupId>com.maxmind.geoip2</groupId>

<artifactId>geoip2</artifactId>

<version>2.16.1</version>

</dependency>


2.下载GeoLite2 City数据库免费版

从 MaxMind 官网(https://dev.maxmind.com/geoip/geoip2/geolite2/)下载 GeoLite2-City.mmdb 数据库文件,并将其放置在项目的 resources 目录下。

因为官网是英文,而且需要注册,所以我这里提供了百度网盘下载地址:

通过百度网盘分享的文件:GeoLite2-City_20240816.tar.gz链接:https://pan.baidu.com/s/1NhX5yFMQAvPFzQavJiNi_g?pwd=yyds 提取码:yyds

代码结构如下:

adfea01921ddc9b66e901ca70c9bb80.png


3.编码

3.1 创建地址获取工具类

c2965c85e0beb3132744a528929f0ee.png

解释:该工具类提供一个方法,根据一个ip地址字符串获取所在国家、省份和城市,第一步先从类路径下加载数据库文件,第二步根据IP获取地址,由于该数据库是国外开源,地址库可能不全,所以当国家、省份、城市信息获取为空时,去淘宝ip地址获取网站重新获取地址封装结果并返回。

淘宝ip地址获取网址:


https://ip.taobao.com/

网址首页:

c7b1d4d9c623d3a2b3c3cf41f8682d0.png

淘宝网的接口请求地址打开控制台可以看到:

1e011a6e35f4a0c4a43815169e16431.png

该接口所需参数:

e659f8e5fcac1eff0e27c1b41f85bb0.png


3.2创建controller接口

c34458889c7da298cbdb9494768dc49.png

4.测试

浏览器发送请求测试:

366b0772b42d3b88449fa76ae572fc8.png

成功获取到结果。

相关文章
|
7月前
|
负载均衡 安全 Linux
为何一个网卡需要配置多个IP地址?🌐
在Linux环境中,一个网卡配置多个IP地址是一个常见且强大的网络管理策略🛠️。这种策略不仅增加了网络的灵活性和效率,还能满足特定的网络需求和应用场景🎯。让我们一探究竟,看看在哪些情况下,为什么一个网卡会需要配置多个IP地址,并探讨不配置多个IP地址的后果。
为何一个网卡需要配置多个IP地址?🌐
|
网络协议 Linux Windows
Linux网络服务之DHCP(下)
1 了解DHCP服务 1.1 DHCP是什么 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),由Internet工作任务小组设计开发,专门用于为TCP/IP网络中计算机自动分配TCP/IP参数的协议。 DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。 默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。 DHCP采用C/S架构,C-client(客户机),S-server(服务器),客户
216 0
|
网络虚拟化 网络协议
|
网络协议