当前位置: 首页 > article >正文

准确率99.9%的离线IP地址定位库 ip2region - python 示例

简介:ip2region是一个离线IP地址定位库和IP定位数据管理框架,10微秒级别的查询效率,提供了众多主流编程语言的 xdb 数据生成和查询客户端实现。号称准确率99.9%的开源离线IP地址定位库。

历史攻略:

Python:暴力破解密码 - 压缩包、web实战

Python:暴力破解密码

真伪之眼:探索信息纷争的艺术

Python:浏览网页暴露多少信息?

GitHub地址:

https://github.com/lionsoul2014/ip2region

使用步骤:

1、下载源码和数据

https://github.com/lionsoul2014/ip2region/archive/refs/heads/master.zip

2、本质就是导入和使用data目录下的 ip2region.xdb

官方示例代码:iptest.py

# Copyright 2022 The Ip2Region Authors. All rights reserved.
# Use of this source code is governed by a Apache2.0-style
# license that can be found in the LICENSE file.
#

from xdbSearcher import XdbSearcher


def searchWithFile():
    # 1. 创建查询对象
    dbPath = "ip2region.xdb"
    searcher = XdbSearcher(dbfile=dbPath)

    # 2. 执行查询
    ip = "1.2.3.4"
    region_str = searcher.searchByIPStr(ip)
    print(region_str)

    # 3. 关闭searcher
    searcher.close()


def searchWithVectorIndex():
    # 1. 预先加载整个 xdb
    dbPath = "ip2region.xdb"
    vi = XdbSearcher.loadVectorIndexFromFile(dbfile=dbPath)

    # 2. 使用上面的缓存创建查询对象, 同时也要加载 xdb 文件
    searcher = XdbSearcher(dbfile=dbPath, vectorIndex=vi)

    # 3. 执行查询
    ip = "1.2.3.4"
    region_str = searcher.search(ip)
    print(region_str)

    # 4. 关闭searcher
    searcher.close()


def searchWithContent():
    # 1. 预先加载整个 xdb
    dbPath = "ip2region.xdb"
    cb = XdbSearcher.loadContentFromFile(dbfile=dbPath)

    # 2. 仅需要使用上面的全文件缓存创建查询对象, 不需要传源 xdb 文件
    searcher = XdbSearcher(contentBuff=cb)

    # 3. 执行查询
    # ip = "111.112.113.114"
    ip = "101.102.103.104"
    region_str = searcher.search(ip)
    print(region_str)

    # 4. 关闭searcher
    searcher.close()


if __name__ == '__main__':
    searchWithContent()

运行结果:

中国|0|宁夏|固原市|电信
中国|0|台湾省|台北|0

http://www.kler.cn/a/429635.html

相关文章:

  • [微服务]redis数据结构
  • fastadmin插件wanlshop使用方法
  • 通过外部链接启动 Flutter App(详细介绍及示例)
  • C# PDF下载地址转图片(Base64 编码)
  • Anaconda安装(2024最新版)
  • SSE部署后无法连接问题解决
  • GauHuman阅读笔记【3D Human Modelling】
  • 知从科技闪耀汽车智能底盘大会:共探软件安全新篇章
  • ElasticSearch常见面试题汇总
  • 《maven 常用知识详解 3:聚合与继承》
  • Blender均匀放缩模型
  • 第8章:CSS预处理器 --[CSS零基础入门]
  • vue3 实现音频转文字组件
  • 深入理解 React 状态管理:useState 和 useReducer
  • java工具包介绍
  • FCOS: Fully Convolutional One-Stage Object Detection——全卷积一阶段目标检测
  • 【CMD、PowerShell和Bash设置代理】
  • 项目文章 | RNA-seq+WES-seq+机器学习,揭示DNAH5是结直肠癌的预后标志物
  • C++小小复习一下
  • js:事件监听
  • STM32进阶 ADC模式转换
  • 1-6 ESP32控制LED灯
  • 11.关于vim编辑器的简单配置
  • UE5中Scene Capture Component 2D组件
  • C++的类
  • Flask返回中文Unicode编码(乱码)解决方案