# ipdatabase2.0 **Repository Path**: ljcvip/ipdatabase2.0 ## Basic Information - **Project Name**: ipdatabase2.0 - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-15 - **Last Updated**: 2023-12-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # IP地址解析ipdatabase 2.0版本 这里是根据原ipdatabase GitHub项目,项目地址是https://github.com/wzhe06/ipdatabase 这里修复了原作者遗留下的bug。 # 原项目BUG 打成jar包后还需要导入原项目的资源文件,当引用这个这个jar包的项目再次打包后,那么这个ip查询的这个jar包是无法使用的。 # 修复 这里修改原项目的资源导入逻辑 # 功能 二叉树快速搜索IP地址数据库 # 数据 数据源采用2015年广告协会制定的IP地址标准数据库,中国互联网广告行业统一采用的标准IP库。 # 原理 利用二叉树实现IP查询,首先将10进制IPV4地址转化为二进制构建二叉树,利用二叉树搜索进行搜索,查询时间复杂度log2n,比传统IP库n的查询速度高出一个量级。 # 接口 根据IP查询城市或地区的接口是IpHelper类中的findRegionByIp接口,说明如下: ``` /** * 静态方法,传入ip地址,返回ip地址所在城市或地区 * @param ip IP地址,例:58.30.15.255 * @return 返回IP地址所在城市或地区,例:北京市 */ public static String findRegionByIp(String ip) ``` # example ``` public void example() throws Exception { String ip = "58.30.15.255"; String region = IpHelper.findRegionByIp(ip); System.out.println(region); } ```