Webマーケに役立つツールやノウハウ、プログラミングのちょっとしたTipsなどを記録したノートです。

IPアドレスから国・都市・タイムゾーンを取得する[PHP]

自分のサイトがどの国・都市からアクセスされているかを知りたいと考えたことはないでしょうか?
アクセス元の国・都市を識別することで、適切なコンテンツや広告を表示することができるようになり、ユーザーの利便性を高めることができます。

IPアドレスからアクセス元の国・都市を判別する方法をご紹介します。

PHPモジュール「GeoIP」をダウンロード

IPインテリジェンスプロバイダーのMaxMindが提供しているフリーソフト「GeoIP」というPHPモジュールを使うことでIPアドレスから国や都市、タイムゾーンを取得することができます。
>>GithubからGeoIPをダウンロードする
以下の4つのファイルをダウンロードします
geoip.inc
geoipcity.inc
geoipregionvars.php
timezone.php

GeoIPのデータベースファイルをダウンロード

MaxMindのサイトからIPアドレスのデータベースファイルをダウンロードします。今回、GeoLite CityのCSV / zip版をダウンロードしました。全世界分のデータベースなので容量は20.5MBありました。

サンプルコード

「piece of note」が作ったサンプルコードをご紹介します。
ダウンロードしたGeoIPのPHPモジュールとdatファイルを同じディレクトリにまとめて配置して試して見ましょう。

例)IPアドレスからTimezoneを取得する

サンプルコードを実装したページで自分のIPアドレスとタイムゾーンを確認することができます。
いかがでしたでしょうか?
無料でモジュールとデータベースを提供しているMaxMind社のおかげで楽に実現できますね。