由于GEOIP官方的原免费GeoLite Legacy数据库(.dat)已于2019年1月开始不再提供更新和支持。
而网上的90%的教程还是老教程, 就想着和大家分享一下.
项目中原本使用的是纯真数据库, 但是老板说要换成geoIP2, 最后选择了免费的GeoLite2 City.mmdb
mmdb下载地址: https://www.maxmind.com/en/accounts/464237/geoip/downloads (需要注册一个账号, 登录后才能下载, 直接注册就好. 去官网下可以下到最新的,网上很多地方的都不是最新的, 还要积分)
具体下载那个库需要大家根据自己需求决定了.
解压后的目录
下载DB-Reader-php
1. composer require maxmind-db/reader:~1.0
2. 将上面下载的GeoLite2-City.mmdb 移到自己的项目目录下
<?php
namespace App\Logic;
use MaxMind\Db\Reader; require_once(APP_PATH . '/../vendor/autoload.php'); class Country extends Base { public static function getIpInfo($ip) { // 澳门 60.246.49.9 香港 203.186.145.250 台湾 114.44.227.87 $reader = new Reader(ROOT_PATH . '/sdk/GeoLite2-City.mmdb'); // 这个就是你mmdb存放的地址 $ipInfo = $reader->get($ip); $reader->close(); print_r($ipInfo); } }
?>
这里面有一个小小的尴尬,就是官网给的github 地址里有个要求是要php大于7.2. 我项目用的是7.0. 升级吧又怕有各种问题, 不升级又用不了.因为项目中还用了Python, 就看了一下Python的文档, 结果发现下面这句话, PHP的要求中是没有这句话的, 试了一下, 果然7.0也可以用. 瞬间感觉这写文档真坑.