GeoIP2資料庫——根據ip確定國家/地區
阿新 • • 發佈:2020-12-19
技術標籤: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也可以用. 瞬間感覺這寫文件真坑.