需求

当我们知道用户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. python图像直方图与直方图均衡化
  2. 获取height固定折叠元素真实高度方法
  3. Github git 命令下载加速
  4. SQLServer技巧
  5. 蚁群算法matlab vrp问题车辆限重,蚁群算法MATLAB解VRP问题
  6. 语音识别技术的发展历程,语音识别是如何工作的?语音识别资料概述
  7. python的数值类型和运算符_python学习笔记之数据类型---数字类型及运算符
  8. 七嘴八舌Google
  9. Atitit 存储方法大总结 目录 1. 存储方式分类 2 1.1. 按照数据分类为 结构化 半结构化 非结构化 2 1.2. 按照内外部可分类 内部存储和外部存储持久化 2 1.3. 按照本地远
  10. linux mysql 相关操作、问题
  11. java三种经典的比对方法_几种任务调度的 Java 实现方法与比较
  12. 数据、运营相关试题(三)【牛客网:数据运营试题广场】
  13. VMware vSphere Client虚拟化重装虚拟机系统步骤
  14. 关于RS232芯片和RS485芯片共用一个STM32串口的情况下如何设计电路
  15. adobe怎么统计字数,在Adobe Reader中统计PDF中的文字数
  16. “建木”萌芽,聚木成林
  17. 济南市公安局人口数据备份库项目(数据复制)之一
  18. 微信小程序 云存储 wx.cloud.downloadFile 下载并另存
  19. 发挥数字化平台优势,电子元器件采购商城系统助力企业改变固有低效流程
  20. 一篇文章,带你详细了解华为认证体系证书(二)

热门文章

  1. Unity 模型尺寸自适应
  2. Linux简介和开发环境
  3. 【Linux开发环境搭建】arm-linux-gnueabihf 交叉编译工具链安装
  4. (附源码)计算机毕业设计ssm房地产销售系统
  5. 第一次的博客 告诫自己及目标
  6. 聚云位智:挖掘有效数据价值,为企业万物互联打下基础
  7. 计算机逻辑模块,常用时序逻辑电路模块 《计算机结构与 及逻辑设计》课件.ppt...
  8. 概率中国一种没有语料字典的分词方法
  9. CI24R1小模块(内置天线)2.4G无线收发芯片
  10. urllib.parse.quote报错surrogates not allowed