python3 +ip2region 离线IP库地址文件实现毫秒级查询ip地址信息
序言
ip2region
ip2region - 离线的ip地址查询库,ip到地区的映射库,提供二进制,B树,内存搜索三种查询算法,查询速度非常快。
支持Java,PHP,C,Python,Nodejs,Golang,C#等语言,本文以Python为例
前期准备
- 在GitHub上克隆下来源文件地址
- 下载完的文件:
- 解压文件分别找到ip2region-master\data\ip2region.db和ip2region-master\binding\python\ip2Region.py
- 创建自己的文件query_ip.py
from ip2Region import Ip2Region # 此处导入的是刚才复制的py文件db_file = './ip2region.db' # 数据库文件路径def ip_search(ip):searcher = Ip2Region(db_file) # 实例化searcher.isip(ip)# 三种算法任选其一# data = searcher.btreeSearch(ip) # B树# data = searcher.binarySearch(ip) #二进制data = searcher.memorySearch(ip) # 内存print(data)print("%s|%s" % (ip, data["region"].decode('utf-8')))searcher.close()if __name__ == "__main__":ip_search("123.205.32.32")
目录
执行查询函数结果
注:查询方式选择
全部的查询客户端单次查询都在0.x毫秒级别,内置了三种查询算法
memory算法:整个数据库全部载入内存,单次查询都在0.1x毫秒内,C语言的客户端单次查询在0.00x毫秒级别。
binary算法:基于二分查找,基于ip2region.db文件,不需要载入内存,单次查询在0.x毫秒级别。
b-tree算法:基于btree算法,基于ip2region.db文件,不需要载入内存,单词查询在0.x毫秒级别,比binary算法更快。
任何客户端b-tree都比binary算法快,当然memory算法固然是最快的!
参考:python +ip2region 离线IP库地址文件实现
参考:lionsoul2014/ip2region
python3 +ip2region 离线IP库地址文件实现毫秒级查询ip地址信息相关推荐
- python +ip2region 离线IP库地址文件实现秒级查询ip归属地址
ip2region ip2region - 离线的ip地址查询库,ip到地区的映射库,提供二进制,B树,内存搜索三种查询算法,查询速度非常快. 支持Java,PHP,C,Python,Nodejs,G ...
- 毫秒级查询的离线IP地址定位库,太实用了!
大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标! 咱们程序员开发任何系统, ...
- php基于新浪ip库获取城市,PHP基于新浪IP库获取IP详细地址的方法
[导读]这篇文章主要介绍了PHP基于新浪IP库获取IP详细地址的方法,涉及php正则.curl及编码转换相关操作技巧 本文实例讲述了PHP基于新浪IP库获取IP详细地址的方法.代码如下<?php ...
- C# 调用IP库(QQWry.Dat)查询IP位置及自动升级IP库方法(附IP库下载地址及相关dll下载)
前言 C# 用IP地址(123.125.114.144)查询位置(北京市百度公司)的东西,非常好用也非常方便,可手动升级刷新IP库,一次编码永久收益,可支持winform.asp.net等程序. 本文 ...
- C# 调用IP库(QQWry.Dat)查询IP位置及自动升级IP库方法(附IP库下载地址及相关dll下载)...
前言 C# 用IP地址(123.125.114.144)查询位置(北京市百度公司)的东西,非常好用也非常方便,可手动升级刷新IP库,一次编码永久收益,可支持winform.asp.net等程序. 本文 ...
- 纯真IP库的结构分析及一个查询类
个人网站上有个功能,记录访问者的IP及其归属地.最初我偷懒通过一个WebService来查询IP归属地,后来觉得通过这种方法响应时间长,资源耗费大,而且对那个WebSerice的依赖度太高,如果它挂了 ...
- 数仓建设之IP库的匹配
数仓建设之IP库的匹配 一.业务前提 二.解决过程 01)增加运行资源 02)通过增加切分块大小,减少实例数 03)明细表和ip库通过join方式 04)mapjoin内存方式 05)将IP库展开,进 ...
- C# 调用IP库(QQWry.Dat)查询IP位置及自动升级IP库方法【转】
前言 C# 用IP地址(123.125.114.144)查询位置(北京市百度公司)的东西,非常好用也非常方便,可手动升级刷新IP库,一次编码永久收益,可支持winform.asp.net等程序. 本文 ...
- qq纯真IP库安装及更新
QQ纯真IP库和命令,其主要功能就是把一些网络工具的输出的IP字符串,附加上地理位置信息(使用纯真数据库).例如218.65.137.1会变成218.65.137.1[广西南宁市电信]. qqwry. ...
- IP库新增10多个功能IP
本文涵盖了从初学者到专家级别的FPGA 项目及IP.所有 FPGA 项目都带有开源的源代码. IP库简介 一直想做一个可以供大家学习.使用的开源IP库,类似OpenCores,OC上IP在领域内的IP ...
最新文章
- PHP的优点和缺点分别是什么,CSS的优点和缺点分别是什么
- opencv3.2.0 Cmake 3.8.0 + tdm-gcc-5.1.0-3 编译问题 highgui _Win32_IE
- 2021-9-下旬 数据结构-线性表-动态数组-java代码实现
- Swift之String的简单实用
- php弹出第一个数组中,PHP array_search始终返回数组的第一个键
- oracle gather trace,Oracle 11g新SQL Trace 10046方法
- dataframe 修改某列_python dataframe操作大全数据预处理过程(dataframe、md5)
- sphinx配置 + php
- 利python写用赌博游戏函数版赏析:
- [C# 设计模式] Iterator - 迭代器模式:我与一份奥利奥早餐的故事
- [LeetCode]400. Nth Digit
- ESRI用户问答精选
- 基于java物流管理信息系统
- form 表单提交后,使页面不跳转
- 单片机控制气压海拔模块BMP180之模块化编程(持续更新中)
- 南京工业大学计算机学院考研真题,南京工业大学考研真题汇总
- 休息时间!哪些业余活动能提升开发人员的技能?
- 很抱歉,你不涨工资,正是因为你“太努力”!
- 赛前采访里皮表示:希望队员用真心踢球。
- linux cut命令学习,Linux中的cut 命令详解