GeoIP2
現在はGeoIPは廃止されてGeoIP2に移行しています。
https://packagist.org/packages/geoip2/geoip2
EXampleの「GeoIP2-City.mmdb」はこちらからダウンロード可能です。
https://dev.maxmind.com/geoip/geoip2/geolite2/
GeoIP ※以下、現在は利用できない内容です。
PHPでの国判定のメモ。
GeoIPについては、Googleで「GeoIPとは」と検索すればGoogle先生が親切に答えてくれます。
また、PHPのGeoIPの詳細についてはマニュアルを参照してください。
今回は環境はPHP5.6系とComposerを使用し、無償版を対象としています。
使用するComposerのパッケージはこちら。
まず、下準備としてMaxMin社のサイトから「GeoIP.dat」をダウンロードします。
ダウンロード対象は「GeoLite Country」です。
次に、Composerでパッケージをインストールします。
{
"require": {
"geoip/geoip": "dev-master"
}
}
残りは簡単です。
これだけのコードで二文字の国名コードを取得できます。
日本だったら「JP」、アメリカだったら「US」、イギリスだったら「GB」といった具合です。
$gi = geoip_open('GeoIP_dat_path/GeoIP.dat', GEOIP_STANDARD);
$country = geoip_country_code_by_addr($gi, $_SERVER['HTTP_X_FORWARDED_FOR']);
geoip_close($gi);
他の関数等はsrc/geoip.incを見れば取得内容や関数等は確認できます。
ただし、IPがヒットしなければ国名コードが取得できない事があるので注意してください。
GeoIPデータベースの更新頻度やツール、有償版のコマンドはここに書いてあるので参考にしてみてください。
参考サイト:http://flatray.com/geoip/