1. 程式人生 > 其它 >GeoIP2資料庫——根據ip確定國家/地區

GeoIP2資料庫——根據ip確定國家/地區

技術標籤:php

由於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