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

相关文章

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

使用Java实现获取客户端IP地址

《使用Java实现获取客户端IP地址》这篇文章主要为大家详细介绍了如何使用Java实现获取客户端IP地址,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 首先是获取 IP,直接上代码import org.springframework.web.context.request.Requ

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

使用Java实现一个解析CURL脚本小工具

《使用Java实现一个解析CURL脚本小工具》文章介绍了如何使用Java实现一个解析CURL脚本的工具,该工具可以将CURL脚本中的Header解析为KVMap结构,获取URL路径、请求类型,解析UR... 目录使用示例实现原理具体实现CurlParserUtilCurlEntityICurlHandler

Linux环境变量&&进程地址空间详解

《Linux环境变量&&进程地址空间详解》本文介绍了Linux环境变量、命令行参数、进程地址空间以及Linux内核进程调度队列的相关知识,环境变量是系统运行环境的参数,命令行参数用于传递给程序的参数,... 目录一、初步认识环境变量1.1常见的环境变量1.2环境变量的基本概念二、命令行参数2.1通过命令编程

深入解析Spring TransactionTemplate 高级用法(示例代码)

《深入解析SpringTransactionTemplate高级用法(示例代码)》TransactionTemplate是Spring框架中一个强大的工具,它允许开发者以编程方式控制事务,通过... 目录1. TransactionTemplate 的核心概念2. 核心接口和类3. TransactionT