引用Geoip实现由IP地址获取国家城市等信息
需求
当我们知道用户ip的情况下,需要统计用户所属的国家/省份/城市等信息。
这时可以用开源的Geoip2 避免重复造轮子。
github地址:https://github.com/maxmind/GeoIP2-java
获取代码中 GeoLite2-City.mmdb 数据的官网(需要先登录注册):https://www.maxmind.com/en/accounts/746301/geoip/downloads
Step1: 获取mmdb数据库信息
离线获取ip信息需要数据库信息,数据库可以在官网下载。
maxmind数据库官网下载地址:https://www.maxmind.com/en/accounts/746301/geoip/downloads
下载之前需要先注册登录。然后找到如下图位置点击下载即可。
GeoLite2-City.mmdb附件信息:
Step2: 引pom编写工具类
pom添加如下引用(如果引用3.xx提示类错误的话,可以换成2.xx版本):
<!-- https://mvnrepository.com/artifact/com.maxmind.geoip2/geoip2 --><dependency><groupId>com.maxmind.geoip2</groupId><artifactId>geoip2</artifactId><version>2.16.1</version></dependency>
简单开发
public class IpUtil {private static final String ip2cityDataPath = "D:\\GeoLite2CityData\\GeoLite2-City_20220726\\GeoLite2-City.mmdb";public static void main(String[] args) {String ip = "47.111.xxx.xxx";try (DatabaseReader dr = new DatabaseReader.Builder(new File(ip2cityDataPath)).build()) {final CityResponse response = dr.city(InetAddress.getByName(ip));// 获取国家信息Country country = response.getCountry();System.out.println(country.getIsoCode()); // 'CN'System.out.println(country.getName()); // 'China'System.out.println(country.getNames().get("zh-CN")); // '中国'// 获取省份Subdivision subdivision = response.getMostSpecificSubdivision();System.out.println(subdivision.getName()); //ZhejiangSystem.out.println(subdivision.getIsoCode()); // ZJSystem.out.println(subdivision.getNames().get("zh-CN")); // 浙江省// 获取城市City city = response.getCity();System.out.println(city.getName()); // HangzhouPostal postal = response.getPostal();System.out.println(postal.getCode()); // 'null'System.out.println(city.getNames().get("zh-CN")); // 杭州Location location = response.getLocation();System.out.println(location.getLatitude()); // 30.2994} catch (Exception io) {io.printStackTrace();}} }
引用Geoip实现由IP地址获取国家城市等信息相关推荐
- android根据ip获取查询省份,通过IP地址获取省份城市位置信息
private String mResult = null; private String mProvinceName; //省份 private String mChCityName; //城市 p ...
- js通过IP地址获取所在城市
话不多说,直接贴代码! 将这段代码运行一下就OK了: <html xmlns="http://www.w3.org/1999/xhtml"> <head runa ...
- 6种根据IP地址获取相应城市信息的接口
发这篇文章的最主要的目的就是给大家分享一个 免费快捷根据IP地址获取相应城市信息的接口--腾讯接口 在找到个腾讯接口之前,我试也用了很多接口,比如:淘宝,新浪等,下面挨个介绍 (ps:$ip是IP地址 ...
- php ip 城市,php如何根据IP地址获取所在城市
本文主要和大家分享php如何根据IP地址获取所在城市,本文主要以代码的形式,希望能帮助到大家.<?php header('Content-Type:text/html;Charset=utf-8 ...
- 根据ip获取所在城市 php,PHP:根据IP地址获取所在城市
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 if ( $useripFlag == chr( 2 ) ) { $AddrSeek = fread( $fd, 3 ): ...
- JAVA根据IP地址获取省份城市和经纬度(可获取国家名称 淘宝高德API如果是国外IP获取到的为空)
所需jar包maven地址: <!-- 根据ip获取位置 --><dependency><groupId>com.maxmind.geoip2</groupI ...
- js根据ip地址获取省份城市的方法
今天发现新浪的IP地址查询接口已经访问不了,也就是说不能用了,然后重新试了其他的,找到搜狐的ip地址可以用 不能用 新浪的IP地址查询接口 http://int.dpool.sina.com.cn/i ...
- 获取地区html代码,根据ip地址获取所在城市信息(省市县)代码
[实例简介] [实例截图] [核心代码] 获取ip地址所在城市 var showIP = function(ip, remote_ip_info ){ if(remote_ip_info['ret'] ...
- java 根据ip地址获取城市_Java 根据ip地址获取当前城市
maxmind免费数据库maven位置:用来获取所要用的数据库文件(GeoLite2-City.mmdb) org.elasticsearch geolite2-databases 20151029 ...
最新文章
- 什么意思IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)
- Unknown CMake command add_compile_definitions
- 科学出版社c语言实验答案,程序设计基础c语言第三章程序结构教材习题答案科学出版社...
- C/C++语言开源库
- Linux学习之linux下文件目录的了解及总结
- 吴恩达机器学习5——神经网络的学习
- Highcharts基础教程(七):图例(Legend)
- struts转换器详解
- 基于SpringBoot的后台管理系统(Encache配置、全局异常处理(重点))(四)
- 【Jmeter】Jmeter使用教程
- 身份证前六位对应代码
- 登录界面软键盘遮挡登入按钮 空间
- 已安装更新版本的onedrive_OneDrive 同步应用程序更新过程
- IPD解读--华为500强的研发第一名,除了钱还有IPD
- jsb is not in the sudoers file. This incident will be reported.
- flea-jersey使用之Flea RESTful接口介绍
- 首钢股份——超低排放排头兵
- openstack环境搭建之六horizon配置
- 计算机word综合操作,『word2010表格操作及综合排版计算机实验报告』excle2010实验操作...
- java实现下载网络图片到本地
热门文章
- java版 SpringCloud 之目前得前端框架都有哪些?
- 局域网共享的四个因素
- 「Poetize9」升降梯上(tyvj2032)(最短路)
- 小程序开发框架WePY和mpvue使用感受
- 传智播客 python_传智播客python视频教程下载
- 计算机java项目(毕设课设) 之 含文档+PPT+任务书+中期检查表+源码等]基于ssm的NBA球队管理系统
- 计算机专业调研报告修订稿,大学生计算机专业实习报告(新修订)
- 基于STM32的温度控制系统仿真
- Dolphin for Mac(Wii游戏模拟器)
- 动态域名解析软件,域名解析管理系统学习教程