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

ip-location-zh 完全指南:PHP 如何 3 分钟搞定无需数据库的 IP 地理位置查询?

ip-location-zh 完全指南:PHP 如何 3 分钟搞定无需数据库的 IP 地理位置查询?

【免费下载链接】ip-location-zh获取 IP 地址的真实地理位置项目地址: https://gitcode.com/gh_mirrors/ip/ip-location-zh

ip-location-zh 是一款免费、无需数据库的 PHP IP 地理位置查询库:只需一行Ip::find(),就能把任意 IP 解析为「中国 河南 郑州」这样的中文地址,并附带行政区划代码。本文带你 3 分钟完成安装、上手与原理速览。

📌 ip-location-zh 是什么?适合谁用?

如果你想在 PHP 项目里做访客定位、日志审计、风控识别,又不想搭建 IP 数据库,它就是一个专注的「小而美」方案:

特点说明
🚫 零数据库地理数据打包成一个二进制文件src/20190703.ipdb,装完即用,不依赖 MySQL / Redis
🇨🇳 中文数据数据源自 IPIP,国内地址精确到市级,国外地址同样可查(详细度略低)
⚡ 一个方法核心 API 只有一个静态方法find,学习成本约等于零
🌐 双栈支持同时支持 IPv4 与 IPv6 解析(实现见src/Ip.php中的findNode
💰 免费MIT 协议,适合预算有限、需求简单的个人与中小项目

⏱️ 3 分钟安装步骤:composer 一条命令搞定

第 1 步:安装 composer(若已安装可跳过),然后执行:

composer require "zhuzhichao/ip-location-zh"

第 2 步:确认数据包到位。安装后检查项目下是否存在src/20190703.ipdb文件,它就是全部"数据库"。

第 3 步(可选):获取源码阅读

git clone https://gitcode.com/gh_mirrors/ip/ip-location-zh

无需任何配置项、无需建表导数据——到这里,安装就全部完成了 ✅

🔍 最快使用方法:一行代码查询 IP 地理位置

<?php require 'vendor/autoload.php'; use Zhuzhichao\IpLocationZh\Ip; var_dump(Ip::find('171.12.10.156'));

返回一个 5 元素数组:

下标01234
含义国家省/直辖市区(预留位)行政区划代码
示例中国河南郑州(空字符串)410100

💡 行政区划代码可直接用于地图定位、区域运营等业务场景,完整省市对照表可通过Ip::locations()获取。

🎨 Laravel 项目优雅接入

Laravel 用户可以直接用Ip::find(Request::getClientIp())拿到当前访问者的城市:

  • Laravel 5.5+:包已内置服务发现(见composer.jsonextra.laravel.aliases),装完即用,什么都不用改
  • Laravel 5.0 – 5.4:在config/app.phpaliases中加一行'Ip' => 'Zhuzhichao\IpLocationZh\Ip'即可

🧠 核心原理:为什么它不需要数据库?

  1. 二进制索引树src/20190703.ipdb采用 IPIP 的 ipdb 格式,前半部分是二进制树索引,查询时按 IP 的比特位逐层向下查找节点,定位极快
  2. 进程级内存缓存:首次查询时打开文件并缓存读取器(单例),同一 IP 的重复查询直接命中内存缓存self::$cached,几乎零开销
  3. 单文件即数据:整个"数据库"就一个文件,备份、迁移、上云都只要拷贝这一个文件

⚠️ 边界情况与注意事项

输入行为
非法 IP(如abc抛出InvalidArgumentException
空字符串返回'N/A'
本机地址127.0.0.1返回「本机地址」
国外 IP可查到,但详细度低于国内

另外请知悉:该免费库不提供经纬度、运营商、区县级等更细内容;数据包更新于 2019-07-03,更新周期不定期。如有更高精度的商业需求,建议对接 IPIP 的付费服务。

📂 文件结构速览

文件说明
src/Ip.php核心类Zhuzhichao\IpLocationZh\Ip,含find查询与locations区划代码
src/20190703.ipdb二进制地理数据文件(IPIP 格式)
tests/TestIp.php单元测试:验证郑州、杭州、本机地址等典型查询结果
composer.json包元数据,包名zhuzhichao/ip-location-zh
License.txtMIT 开源协议

总结:ip-location-zh 用「一个文件 + 一个方法」的极简设计,把 IP 地理位置查询从"要部署数据库"降低到"一条 composer 命令"。对于日志城市标签、访问统计、简单风控等场景,它是一个开箱即用、值得收藏的免费 PHP 工具。

【免费下载链接】ip-location-zh获取 IP 地址的真实地理位置项目地址: https://gitcode.com/gh_mirrors/ip/ip-location-zh

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4225820.html

相关文章:

  • MinIO 停止维护怎么办?Docker 迁移 RustFS 实战:数据零丢失
  • LX Music 桌面版:免费音乐聚合播放器完整指南
  • Outfit 字体完整指南:9 种字重免费商用,3 分钟装进系统
  • Shallows序列化能力清单:JSON、Plist与String存储映射全覆盖指南
  • 数字化转型全景解析:标准化、信息化、数字化与智能化的演进路径与实践指南
  • 为什么Intel放弃Hyperscan:Vectorscan项目背后的开源反击战
  • Java面试前,我建议你重点复习这几个核心知识点
  • 谷歌数据分析 V 笔记(二)
  • 2026年口碑出众的表型平台生产厂家盘点,值得你深入了解
  • 3步完成微信聊天记录导出全指南:免费永久保存为HTML和Word
  • 如何用 Cosmic Ray 的 cr-rate 诊断测试薄弱点:变异存活率分析完全教程
  • Paperless-ngx 完整上手指南:五步把纸质文件变成可搜索档案
  • 如何使用 DALL-E 2?
  • 2026年,揭秘宜昌市伍家岗区那些超好的差旅型酒店门店!
  • 朱雀三号首次陆地回收
  • 金融工程Financial Engineering Competition-2回归MSE优化
  • 银行模拟器,装x神器 吊打市面上所有模拟器,泡妹神器
  • 构建机器学习模型识别图像AI生成内容的检测
  • 中小团队的后端技术栈搭配:稳定、高效、易维护
  • TorchOpt API参考速查:从优化器到Transform的完整函数地图
  • 单靠死工资不够?这本《AI创富手册》教你用AI开启第二收入曲线
  • JobRadar:基于本地大模型的职位匹配评分与智能筛选指南
  • 推理增强工程实践:DeepSeek-Reasonix与esengine组合落地指南
  • 贪心算法的思路和典型例题
  • AI找矿实战:如何用机器学习圈定高纯石英靶区
  • Vue3数字输入框(InputNumber)
  • 基于MCP Server构建AI可查询的错误知识库:从协议到实践
  • MCP Server实践:AI错误诊断工具,让报错不再难懂
  • 来看界面控件DevExtreme如何实现数据表单的高效动态更新
  • AI网站构建器背后:结构化页面表示与生成链路解析