需求

当我们知道用户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编写工具类

  1. 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>
    
  2. 简单开发

    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地址获取国家城市等信息相关推荐

  1. android根据ip获取查询省份,通过IP地址获取省份城市位置信息

    private String mResult = null; private String mProvinceName; //省份 private String mChCityName; //城市 p ...

  2. js通过IP地址获取所在城市

    话不多说,直接贴代码! 将这段代码运行一下就OK了: <html xmlns="http://www.w3.org/1999/xhtml"> <head runa ...

  3. 6种根据IP地址获取相应城市信息的接口

    发这篇文章的最主要的目的就是给大家分享一个 免费快捷根据IP地址获取相应城市信息的接口--腾讯接口 在找到个腾讯接口之前,我试也用了很多接口,比如:淘宝,新浪等,下面挨个介绍 (ps:$ip是IP地址 ...

  4. php ip 城市,php如何根据IP地址获取所在城市

    本文主要和大家分享php如何根据IP地址获取所在城市,本文主要以代码的形式,希望能帮助到大家.<?php header('Content-Type:text/html;Charset=utf-8 ...

  5. 根据ip获取所在城市 php,PHP:根据IP地址获取所在城市

    欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 if ( $useripFlag == chr( 2 ) ) { $AddrSeek = fread( $fd, 3 ): ...

  6. JAVA根据IP地址获取省份城市和经纬度(可获取国家名称 淘宝高德API如果是国外IP获取到的为空)

    所需jar包maven地址: <!-- 根据ip获取位置 --><dependency><groupId>com.maxmind.geoip2</groupI ...

  7. js根据ip地址获取省份城市的方法

    今天发现新浪的IP地址查询接口已经访问不了,也就是说不能用了,然后重新试了其他的,找到搜狐的ip地址可以用 不能用 新浪的IP地址查询接口 http://int.dpool.sina.com.cn/i ...

  8. 获取地区html代码,根据ip地址获取所在城市信息(省市县)代码

    [实例简介] [实例截图] [核心代码] 获取ip地址所在城市 var showIP = function(ip, remote_ip_info ){ if(remote_ip_info['ret'] ...

  9. java 根据ip地址获取城市_Java 根据ip地址获取当前城市

    maxmind免费数据库maven位置:用来获取所要用的数据库文件(GeoLite2-City.mmdb) org.elasticsearch geolite2-databases 20151029 ...

最新文章

  1. 什么意思IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)
  2. Unknown CMake command add_compile_definitions
  3. 科学出版社c语言实验答案,程序设计基础c语言第三章程序结构教材习题答案科学出版社...
  4. C/C++语言开源库
  5. Linux学习之linux下文件目录的了解及总结
  6. 吴恩达机器学习5——神经网络的学习
  7. Highcharts基础教程(七):图例(Legend)
  8. struts转换器详解
  9. 基于SpringBoot的后台管理系统(Encache配置、全局异常处理(重点))(四)
  10. 【Jmeter】Jmeter使用教程
  11. 身份证前六位对应代码
  12. 登录界面软键盘遮挡登入按钮 空间
  13. 已安装更新版本的onedrive_OneDrive 同步应用程序更新过程
  14. IPD解读--华为500强的研发第一名,除了钱还有IPD
  15. jsb is not in the sudoers file. This incident will be reported.
  16. flea-jersey使用之Flea RESTful接口介绍
  17. 首钢股份——超低排放排头兵
  18. openstack环境搭建之六horizon配置
  19. 计算机word综合操作,『word2010表格操作及综合排版计算机实验报告』excle2010实验操作...
  20. java实现下载网络图片到本地

热门文章

  1. java版 SpringCloud 之目前得前端框架都有哪些?
  2. 局域网共享的四个因素
  3. 「Poetize9」升降梯上(tyvj2032)(最短路)
  4. 小程序开发框架WePY和mpvue使用感受
  5. 传智播客 python_传智播客python视频教程下载
  6. 计算机java项目(毕设课设) 之 含文档+PPT+任务书+中期检查表+源码等]基于ssm的NBA球队管理系统
  7. 计算机专业调研报告修订稿,大学生计算机专业实习报告(新修订)
  8. 基于STM32的温度控制系统仿真
  9. Dolphin for Mac(Wii游戏模拟器)
  10. 动态域名解析软件,域名解析管理系统学习教程