GeoIP2数据库——根据ip确定国家/地区

因GEOIP官方原免费GeoLite Legacy数据库不再更新支持,作者分享项目中将纯真数据库换成geoIP2,选用免费的GeoLite2 City.mmdb的过程,包括下载地址、解压目录等,还提到使用DB - Reader - php时因PHP版本要求遇到的问题及解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于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也可以用. 瞬间感觉这写文档真坑.

GitHub地址:  https://github.com/maxmind/MaxMind-DB-Reader-php

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值