IP地址解析省份区域信息

2024-06-24 00:36

本文主要是介绍IP地址解析省份区域信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

最近工作需要根据IP地址,解析通话所在省份。因此,在网上找了相关方案,作为存档记录下来。

在线接口

不做阐述。因为,一是网上可以很轻松的找到,没有必要多说。二是开发在内网中,多数不会让连接外网。三是多数花钱的方案,公司审批麻烦。

离线方案

调研了开源的ip2region,但是其不支持IPV6,因此使用mica-ip2region版。mica-ip2region,已内置了IP数据源,因此不需要自己单独添加IP数据源。如果,公司有自己的IP库,需要添加到数据源,需要研究ip2region如何生成IP数据源。

  • 依赖
    <properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><mica.ip2region.version>2.7.18.5</mica.ip2region.version><spring.version>2.7.13</spring.version></properties><dependencies><dependency><groupId>net.dreamlu</groupId><artifactId>mica-ip2region</artifactId><version>${mica.ip2region.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId><version>${spring.version}</version></dependency></dependencies>
  • 测试案例
package com.dayue;import net.dreamlu.mica.ip2region.config.Ip2regionConfiguration;
import net.dreamlu.mica.ip2region.config.Ip2regionProperties;
import net.dreamlu.mica.ip2region.core.Ip2regionSearcher;
import net.dreamlu.mica.ip2region.impl.Ip2regionSearcherImpl;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class Demo {private static Ip2regionSearcher searcher;public static void main(String[] args) throws Exception {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();Ip2regionConfiguration configuration = new Ip2regionConfiguration();searcher = configuration.ip2regionSearcher(context, new Ip2regionProperties());((Ip2regionSearcherImpl) searcher).afterPropertiesSet();System.out.println(searcher.memorySearch("220.248.12.158"));System.out.println(searcher.memorySearch("222.240.36.135"));System.out.println(searcher.memorySearch("172.30.13.97"));System.out.println(searcher.memorySearch("223.26.64.0"));System.out.println(searcher.memorySearch("223.26.128.0"));System.out.println(searcher.memorySearch("223.26.67.0"));System.out.println(searcher.memorySearch("223.29.220.0"));System.out.println(searcher.memorySearch("82.120.124.0"));System.out.println(searcher.memorySearch("::ffff:1111:2222"));System.out.println(searcher.memorySearch("2001:db8::ffff:1111:2222"));System.out.println(searcher.memorySearch("::1"));System.out.println(searcher.memorySearch("2406:840:20::1"));System.out.println(searcher.memorySearch("2c0f:feb0:a::"));System.out.println(searcher.memorySearch("240e:109:8047::"));System.out.println(searcher.memorySearch("1111:1111:1111::1111"));}}

这篇关于IP地址解析省份区域信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1088714

相关文章

SpringBoot实现基于URL和IP的访问频率限制

《SpringBoot实现基于URL和IP的访问频率限制》在现代Web应用中,接口被恶意刷新或暴力请求是一种常见的攻击手段,为了保护系统资源,需要对接口的访问频率进行限制,下面我们就来看看如何使用... 目录1. 引言2. 项目依赖3. 配置 Redis4. 创建拦截器5. 注册拦截器6. 创建控制器8.

在C#中合并和解析相对路径方式

《在C#中合并和解析相对路径方式》Path类提供了几个用于操作文件路径的静态方法,其中包括Combine方法和GetFullPath方法,Combine方法将两个路径合并在一起,但不会解析包含相对元素... 目录C#合并和解析相对路径System.IO.Path类幸运的是总结C#合并和解析相对路径对于 C

Linux限制ip访问的解决方案

《Linux限制ip访问的解决方案》为了修复安全扫描中发现的漏洞,我们需要对某些服务设置访问限制,具体来说,就是要确保只有指定的内部IP地址能够访问这些服务,所以本文给大家介绍了Linux限制ip访问... 目录背景:解决方案:使用Firewalld防火墙规则验证方法深度了解防火墙逻辑应用场景与扩展背景:

Java解析JSON的六种方案

《Java解析JSON的六种方案》这篇文章介绍了6种JSON解析方案,包括Jackson、Gson、FastJSON、JsonPath、、手动解析,分别阐述了它们的功能特点、代码示例、高级功能、优缺点... 目录前言1. 使用 Jackson:业界标配功能特点代码示例高级功能优缺点2. 使用 Gson:轻量

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

使用Python检查CPU型号并弹出警告信息

《使用Python检查CPU型号并弹出警告信息》本教程将指导你如何编写一个Python程序,该程序能够在启动时检查计算机的CPU型号,如果检测到CPU型号包含“I3”,则会弹出一个警告窗口,感兴趣的小... 目录教程目标方法一所需库步骤一:安装所需库步骤二:编写python程序步骤三:运行程序注意事项方法二

python解析HTML并提取span标签中的文本

《python解析HTML并提取span标签中的文本》在网页开发和数据抓取过程中,我们经常需要从HTML页面中提取信息,尤其是span元素中的文本,span标签是一个行内元素,通常用于包装一小段文本或... 目录一、安装相关依赖二、html 页面结构三、使用 BeautifulSoup javascript

PostgreSQL如何查询表结构和索引信息

《PostgreSQL如何查询表结构和索引信息》文章介绍了在PostgreSQL中查询表结构和索引信息的几种方法,包括使用`d`元命令、系统数据字典查询以及使用可视化工具DBeaver... 目录前言使用\d元命令查看表字段信息和索引信息通过系统数据字典查询表结构通过系统数据字典查询索引信息查询所有的表名可

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象