場合によっては、サイト訪問者がどの国から来ているかを知る必要がある場合があります。たとえば、地理的にターゲットを絞った広告プログラムを実行する予定がある場合などです。この記事ではこの方法を紹介します。
場合によっては、サイト訪問者がどの国から来ているかを知る必要があることがあります。たとえば、地理的にターゲットを絞った広告プログラムを実行することを計画している場合などです。ここで、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("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 の無料全国情報にアクセスするためのモジュール (geoip.inc) の使用を示しています。データベース (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() を呼び出してデータベース ファイルを閉じます。
とても簡単です。