• ip2region通过ip获得地址


    提供两种方式一种是ip2region.db,一种是ip2region.d=xdb,本地讲解db

    简介

    本工具类使用org.lionsoul:ip2region工具类作为基础,简化了操作,把方法改写成了静态类,添加了区域实体,以及支持SpringBoot自动配置。

    依赖导入

    最新版本 

    org.lionsoul:ip2region最新版本 

    maven

    <!-- 必须依赖 -->
    <dependency>
      <groupId>cn.404z</groupId>
      <artifactId>ip2region</artifactId>
      <version>1.1.0</version>
    </dependency>
    <dependency>
    <groupId>org.lionsoul</groupId>
    <artifactId>ip2region</artifactId>
    <version>1.7.2</version>
    </dependency>
        <!-- 额外依赖(运行未报错,不需要加) -->
    <dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.11</version>
    </dependency>
     

    gradle

    // 必须依赖
    implementation 'cn.404z:ip2region:1.1.0'
    implementation 'org.lionsoul:ip2region:1.7.2'
    // 额外依赖(运行未报错,不需要加)
    implementation 'ch.qos.logback:logback-classic:1.2.11'
     

    使用方法

    通过url初始化

    代码

    Ip2Region.initByUrl("https://cdn.jsdelivr.net/gh/lionsoul2014/ip2region/data/ip2region.db");
            System.out.print(Ip2Region.parse("202.108.22.5"));
     

    结果

    [main] INFO cn.z.ip2region.Ip2Region - 初始化,URL路径为https://cdn.jsdelivr.net/gh/lionsoul2014/ip2region/data/ip2region.db
    [main] INFO cn.z.ip2region.Ip2Region - 加载数据文件成功,总共8.93MB
    Region{country='中国', province='北京', city='北京', area='', isp='联通'}
     

    通过文件初始化

    代码

    Ip2Region.initByFile("/file/ip2region/data.db");
    System.out.print(Ip2Region.parse("202.108.22.5"));
     

    结果

    [main] INFO cn.z.ip2region.Ip2Region - 初始化,文件路径为/file/ip2region/data.db
    [main] INFO cn.z.ip2region.Ip2Region - 加载数据文件成功,总共8.93MB
    Region{country='中国', province='北京', city='北京', area='', isp='联通'}
     

    通过bytes初始化

    代码

    try {
        Ip2Region.init(Files.readAllBytes((new File("/file/ip2region/data.db")).toPath()));
    } catch (IOException e) {
        e.printStackTrace();
    }
    System.out.print(Ip2Region.parse("202.108.22.5"));
     

    结果

    [main] INFO cn.z.ip2region.Ip2Region - 加载数据文件成功,总共8.93MB
    Region{country='中国', province='北京', city='北京', area='', isp='联通'}
     

    初始化多次

    代码

    Ip2Region.initByFile("/file/ip2region/data.db");
    Ip2Region.initByFile("/file/ip2region/data.db");
    System.out.print(Ip2Region.parse("202.108.22.5"));
     

    结果

    [main] INFO cn.z.ip2region.Ip2Region - 初始化,文件路径为/file/ip2region/data.db
    [main] INFO cn.z.ip2region.Ip2Region - 加载数据文件成功,总共8.93MB
    [main] WARN cn.z.ip2region.Ip2Region - 已经初始化过了,不可重复初始化!
    Region{country='中国', province='北京', city='北京', area='', isp='联通'}
     

    初始化异常

    代码

    Ip2Region.initByFile("/file/ip2region/data");
            System.out.print(Ip2Region.parse("202.108.22.5"));
     

    结果

    [main] INFO cn.z.ip2region.Ip2Region - 初始化,文件路径为/file/ip2region/data
    [main] ERROR cn.z.ip2region.Ip2Region - 文件读取异常
    java.nio.file.NoSuchFileException: \file\ip2region\data
    [main] ERROR cn.z.ip2region.Ip2Region - memorySearch查询异常
    java.lang.NullPointerException: null
    Region{country='', province='', city='', area='', isp=''}

     gitee地址

    https://gitee.com/chenjie950907/ip2region-test

     新版本请查看https://www.cnblogs.com/cj8357475/p/16493953.html

  • 相关阅读:
    14 用DFT计算线性卷积
    13 DFT变换的性质
    12 有限长序列的分类
    前端常见跨域解决方案
    JS基础-构造函数、原型、原型链、继承
    浏览器中的 JavaScript 执行机制
    再也不怕面试官问我 Promise 相关问题了
    前端面试---手写代码常考题
    从输入 URL 到页面展示,这中间发生了什么?
    学习笔记-CSS-圣杯布局和双飞翼布局
  • 原文地址:https://www.cnblogs.com/cj8357475/p/16491635.html
Copyright © 2020-2023  润新知