准确率 99.9% 的离线IP地址定位库

news2024/12/28 21:03:20

Ip2region 是一个离线 IP 地址定位库,准确率高达 99.9%,搜索性能为 0.0x 毫秒。DB 文件只有几兆字节,其中存储了所有 IP 地址。

支持 Java、PHP、C、Python、Nodejs、Golang、C#、lua 等查询绑定。查询算法使用二叉树、B树和内存搜索算法。

功能特性

查询准确率高达99.9%

数据来源于一些知名的 IP 查询提供商,经测试比纯 IP 定位更准确一些。

  • >80% ,淘宝IP地址库:http://ip.taobao.com

  • ≈10% ,GeoIP:https://geoip.com

  • ≈2% ,纯真IP库:http://www.cz88.net

文件体积小

数据库文件 ip2region.db 只有几 MB 大小,最小的版本不超过 1.5MB,最大的不超过 8MB。

标准数据格式

每条 ip 数据段都固定了格式,目前只有国内的数据可以精确到城市级别,其他国家只有部分可以定位到国家,其余无法确认的数据默认值为 0 。

_城市Id|国家|区域|省份|城市|ISP_

查询速度快

所有客户端单次查询都在0.x毫秒级别,内置了三种查询算法:

  • • memory算法:整个数据库全部载入内存,单次查询都在0.1x毫秒内,C语言的客户端单次查询在0.00x毫秒级别。

  • • binary算法:基于二分查找,基于 ip2region.db文件,不需要载入内存,单次查询在0.x毫秒级别。

  • • b-tree算法:基于btree算法,基于 ip2region.db文件,不需要载入内存,单词查询在0.x毫秒级别,比 binary 算法更快。

多种查询客户端的支持

客户端已经集成 java、C#、php、c、python、nodejs、php 扩展(php5和php7)、golang、rust、lua、lua_c、nginx。

快捷安装

maven仓库地址

<dependency>  
    <groupId>org.lionsoul</groupId>  
    <artifactId>ip2region</artifactId>  
    <version>1.7.2</version>  
</dependency>

nodejs

npm install node-ip2region --save

nuget安装

Install-Package IP2Region

php composer

composer require zoujingli/ip2region

快速测试

请参考每个 binding 下的 README 说明去运行 cli 测试程序,例如 C 语言的 demo 运行如下:

cd binding/c/  
gcc -g -O2 testSearcher.c ip2region.c  
./a.out ../../data/ip2region.db

会看到如下 cli 界面:

initializing  B-tree ...   
+----------------------------------+  
| ip2region test script            |  
| Author: chenxin619315@gmail.com  |  
| Type 'quit' to exit program      |  
+----------------------------------+  
p2region>> 101.105.35.57  
2163|中国|华南|广东省|深圳市|鹏博士 in 0.02295 millseconds

输入 IP 地址开始测试,第一次会稍微有点慢,在运行命令后面接入 binary、memory 来尝试其他算法,建议使用 b-tree 算法,速度和并发需求的可以使用memory 算法,具体集成请参考不同 binding 下的测试源码。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/717638.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Java乡镇篮球队管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

探索小程序的世界(专栏导读、基础理论)

文章导读 一、为什么要学习小程序开发1.1 低门槛1.2 市场需求1.3 创业机会1.4 技术发展趋势 二、专栏导读2.1 实战系列2.2 工具系列2.3 游戏系列2.4 插件系列 三、基础理论3.1 微信小程序简易教程框架组件API工具 开发者工具项目结构 3.2 app.json配置pageswindowtabbar 3.3 Ap…

Android Studio实现内容丰富的安卓自行车租赁平台

如需源码可以添加q-------3290510686&#xff0c;也有演示视频演示具体功能&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动。 项目编号105 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看公告 3.查…

Linux centos7.6下查看下线指定用户(实操)

Linux系统是一个多用户多任务的分时操作系统&#xff0c;任何一个要使用系统资源的用户&#xff0c;都必须首先向系统管理员申请一个账号&#xff0c;然后以这个账号的身份进入系统。 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪&#xff0c;并控制他们对系统…

【源码】为什么UWB定位技术可用于室内定位?

UWB室内人员定位原理 UWB室内人员定位技术只是属于无线定位技术的一种。流行的无线定位技术包括GPS定位、北斗定位、蓝牙定位、WIFI定位、RFID定位等&#xff0c;其中GPS、北斗主要用在室外定位&#xff0c;蓝牙定位、WIFI定位、RFID定位、UWB定位主要用于室内定位。UWB定位和…

《软件测试开发》概念篇

目录 一.什么是测试 二.测试与开发之间的区别1.工作内容上的区别 2.技能要求上的区别 3.发展前景 测试与调试之间的区别 三.优秀的测试人员所应具备的素质 四.需求 需求的概念 需求的产生&#xff0c;需求是怎么来的&#xff1f; 测试人员眼中的需求 需求的重要性 测…

论文阅读 (94):Substructure Aware Graph Neural Networks (SAGNN, AAAI2023)

文章目录 1 要点1.1 概述1.2 一些概念1.3 代码1.4 引用 2 基础知识2.1 符号2.2 信息传递神经网络 (MPNN) 3 方法3.1 子图提取3.1.1 基于节点的策略3.1.2 基于图的策略 3.2 随机游走返回概率编码3.3 子图信息注入的信息传递 1 要点 1.1 概述 题目&#xff1a;子结构感知图神经…

《YOLOv5/YOLOv7魔术师》专栏介绍 CSDN独家改进创新实战专栏目录

&#x1f4a1;&#x1f4a1;&#x1f4a1;YOLOv5/YOLOv7魔术师&#xff0c;独家首发创新&#xff08;原创&#xff09;&#xff0c;持续更新&#xff0c;最终完结篇数≥100&#xff0c;适用于Yolov5、Yolov7、Yolov8等各个Yolo系列&#xff0c;专栏文章提供每一步步骤和源码&am…

测试员眼中的____是____

- 1 - 测试员眼中的开发是淘气的孩子 只有靠哄、豁、骗 才能让其完成“作业” - 2 - 测试员眼中的产品经理是女票 不管大小事&#xff0c;只要意见有出入 都得与其商量&#xff0c;才能最终拍板 - 3 - 测试员眼中的UI是艺术家 每天都操着画板&#xff08;苹果显示器&#xff…

解除网页禁止复制,复制粘贴没烦恼。

参考 解除网页禁止复制&#xff0c;复制粘贴没烦恼。 https://zhuanlan.zhihu.com/p/344419634 安装SuperCopy插件

游戏出海长期向好趋势未改,茄子科技助力企业把握出海机遇

在中国游戏出海成为更多企业的必选题之时&#xff0c;如何把握出海机遇&#xff0c;在激烈竞争中实现增长&#xff0c;成为中国游戏厂商的着力点。秉承着红海将至的市场发展背景&#xff0c;出海全球化、本地化的战略已经成为企业大势所趋&#xff0c;越来越多的游戏厂商开始挑…

【3 栈和队列】共享栈

利用栈底位置相对不变的特性&#xff0c;可以让两个顺序栈共享一个一维数据空间&#xff0c;将两个栈的栈底分别设置在共享空间的两端&#xff0c;两个栈顶向共享空间中间延伸。 两个栈的栈顶指针都指向栈顶元素&#xff0c; top0-1时0号栈为空&#xff0c;top1MaxSize-1时1号…

智安网络|网络安全威胁多样化和复杂化,防护任务日益艰巨

随着数字化和网络化的加速发展&#xff0c;人们面临的网络安全问题日益增多。由于网络安全威胁的多样性和复杂性&#xff0c;网络安全防护变得越来越困难。 一. 网络安全威胁的复杂性 网络安全威胁种类繁多&#xff0c;主要包括病毒、木马、蠕虫、间谍软件、恶意软件、黑客攻击…

解决使用idea的maven打包springboot项目时,“不支持版本号17”的问题

问题描述 在idea里面使用maven的package功能&#xff0c;对一个springboot项目打包jar包时&#xff0c;出现了“不支持版本号17”的错误 经排查&#xff0c;本地确实装了jdk17的&#xff0c;而且运行mvn -version也提示有java 17 解决办法 最后发现&#xff0c;可能是idea…

2023年生猪行业研究报告

第一章 行业概况 生猪是指猪类动物中未经加工的、原始的、活体的猪&#xff0c;通常是指用于肉类生产的猪。生猪在全球范围内都是主要的肉类来源之一。它们的肉质丰富&#xff0c;营养价值高&#xff0c;同时还能用来制作各种加工肉类产品&#xff0c;如火腿、香肠等。 生猪养…

以太网 (数据链路层协议)

以太网 认识以太网以太网数据帧 认识以太网 “以太网” 不是一种具体的网络&#xff0c;而是一种技术标准&#xff1b;既包含了数据链路层的内容&#xff0c;也包含了一些物理层的内容。 例如&#xff1a;规定了网络拓扑结构&#xff0c;访问控制方式&#xff0c;传输速率等&a…

你值得拥有——流星雨下的告白(Python实现)

目录 1 前言 2 霍金说移民外太空 3 浪漫的流星雨展示 4 Python代码 1 前言 我们先给个小故事&#xff0c;提一下大家兴趣&#xff1b;然后我给出论据&#xff0c;得出结论。最后再浪漫的流星雨表白代码奉上&#xff0c;还有我自创的一首诗。开始啦&#xff1a; 2 霍金说移民外…

数据万象AVIF图片压缩 - 小程序省流量利器

导语 微信小程序因其便捷的开发环境和天然的微信生态&#xff0c;使得越来越多企业平台通过小程序建立自己的业务。在小程序上使用图片非常广泛&#xff0c;但传统格式图片&#xff08;如 JPG/PNG&#xff09;占用空间大&#xff0c;加载速度慢&#xff0c;可能导致昂贵的图片…

瑞吉外卖-Day01

title: 瑞吉外卖-Day01 abbrlink: ‘0’ date: 2023-04-1 18:00:00 瑞吉外卖-Day01 课程内容 软件开发整体介绍 瑞吉外卖项目介绍 开发环境搭建 后台登录功能开发 后台退出功能开发 1. 软件开发整体介绍 作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流…

基于Java+Vue前后端分离田径运动会成绩管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…