🌏
GeoLite2でIPアドレスから国名を求める
GeoLite2とは
GeoLite2を使えば、IPアドレスから国名・地域名を求めることができます。
GeoLite2のインストール
インストール方法は公式HPに説明されている通り行います。
- Sign Up for GeoLite2 からサインアップします。
- ログイン後のMyPageで、Download Databasesから「GeoLite2 City」と「GeoLite2 Country」のデータベースをDLします。
- ダウンロードしたデータベースを任意のパスに展開します。
- PHPのバージョン7.2以上が必要です。それとComposerも必要です。
- composerでgeoip2というパッケージをインストールします。
php composer.phar require geoip2/geoip2:~2.0
サンプルコード
(※このサンプルでは国名のほうを使います。)
sample.php
<?php
require 'vendor/autoload.php';
use GeoIp2\database\Reader;
const GEOLITE_PATH = '<任意のパス>/GeoLite2-Country.mmdb'; // DLしたファイルのパス
$ipAddress = 'x.x.x.x'; // 求めたいIPアドレス
$reader = new Reader(GEOLITE_PATH);
$country = $reader->country($ipAddress);
if ($country != NULL) {
echo $country->country->names["ja"]; // 日本語での国名
echo $country->country->isoCode; // ISO Code (日本だとjaとなる)
echo var_dump($country->country); // 含まれる要素を全てdumpする
}
ライセンスには注意
公式HPにも記載がありますが、ライセンスはGeoLite2を使っていることを明記する必要があります。
こんな感じです。
This product includes GeoLite2 data created by MaxMind, available from
<a href="https://www.maxmind.com">https://www.maxmind.com</a>.
Discussion