たとえば、地理的にターゲットを絞った広告プログラムの実行を計画している場合など、サイト訪問者がどの国から来ているかを知る必要がある場合があります。この記事ではこの方法を紹介します。
場合によっては、サイト訪問者がどの国から来ているかを知る必要があることがあります。たとえば、地理的にターゲットを絞った広告プログラムを実行する予定がある場合などです。ここで、MaxMind の GeoIP などのツールが役立ちます。これを使用すると、訪問者の IP アドレスから訪問者の正確な地理的位置を簡単に取得できます。
MaxMind は商用データベースと無料データベースを提供します。前者はより正確で、ユーザーがいる都市の情報レベルまで到達できますが、後者は国と地域のみを決定できます。この記事では無料版の使い方を紹介します。遠隔地の顧客の都市や国の情報など、より詳細な情報が必要な場合は、MaxMind (http://www.maxmind.com) からさらに詳細なデータベースを購入する必要があります。
はじめに
このソフトウェアを使用するには、まず GeoIP の国情報ファイル (http://www.maxmind.com/app/geoip_country) をダウンロードし、特定の場所に保存する必要があります。 Web サーバーのディレクトリ上。次に、データベース ファイルで使用される言語 API を選択する必要があります。プロセス全体を簡素化するために、純粋な PHP バージョンを使用して、Apache コンポーネントの追加の構成やセットアップを回避します。ソフトウェアを Web サイト (http://www.maxmind.com/download/geoip/database/LICENSE.txt) にインストールする前に必ずソフトウェア ライセンス条項を読み、これらの条項に同意することを確認してください。
コード リスト A
// include 関数
include("geoip.inc");
// GeoIP データベースを読み取ります
$handle = geoip_open("GeoIP.dat", GEOIP_STANDARD);
// IP を国にマッピングします
echo "IP アドレス 62.149.130.132 " . geoip_country_name_by_addr($handle, "62.149.130.132") . " (国コード " . geoip_country_code_by_addr($handle, "62.149.130.132") . ")";
// データベース ハンドラーを閉じる
// www.knowsky.com
geoip_close($handle);
// 強制ライセンス通知を印刷します
echo "
-- この製品には、MaxMind によって作成された GeoIP データが含まれており、http://maxmind.com/ --";
から入手できます。 ?>
リスト A のコードは、モジュール (geoip.inc) を使用して GeoIP 無料国情報データベース (GeoIP.dat) にアクセスする基本的な方法を示しています。この例では、PHP インクルード ファイルと国情報データベース ファイルが両方とも PHP ファイル自体と同じディレクトリにあることを前提としています。例が実際のインストールと異なる場合は、必要に応じてパスを変更する必要があります。
GeoIP PHP 関数ライブラリを導入した後の最初のステップは、geoip_open() 関数を使用して GeoIP データベース ファイルを開くことです。この関数は、データベース ファイル パスとデータベース タイプの 2 つのパラメータを受け取ります。
次に、geoip_open() を呼び出して返されたハンドルを使用して、指定された IP アドレスに基づいて 2 文字の国コードと直感的な国名を取得します。その中で、関数 geoip_country_code_by_addr() と geoip_country_code_by_name() をそれぞれ使用する必要もあります。どちらも 2 つのパラメータを受け入れます: geoip_open() によって返されるハンドルと解決される IP アドレスです。
必要な情報を取得したら、geoip_close() を呼び出してデータベース ファイルを閉じます。
が行うことは非常に簡単です。