PHPでPECLインストールを使用したIP地理的位置情報の実装

地理的位置情報は、ウェブサイトにとって重要な機能であり、オンラインビジネスがユーザーの地理的位置に基づいてターゲット指向のコンテンツを提供できるようにする。地理的位置情報データを使用することで、ウェブサイトのオーナーは地域密着型のコンテンツ(地元のニュース、天気、イベントなど)を提供し、そのコンテンツをネイティブ言語で表示できる。また、特定の地理的区域からの不正行為を検出して阻止することで、詐欺を防ぐことができる。これは、ユーザー体験を向上させ、詐欺行為を防ぐための重要なツールである。

地理的位置情報は、ウェブサーバ層、プログラミング言語層、SDKの使用など、さまざまな方法で実装できる。以前の記事では、Apacheサーバーに地理的位置情報をインストールする方法を説明しました。本記事では、PECLインストールを使用してPHP言語に地理的位置情報をインストールする別のアプローチを探ります。このデモンストレーションでは、同じ地理的位置情報プロバイダであるIP2Locationを使用します。

IP2Locationの概要

IP2Locationは、IPアドレスとそれに関連する場所の情報を含むデータベースです。データベースには、国、地域、都市、緯度、経度、タイムゾーン、郵便番号、地区番号、携帯情報、使用タイプなど、IPアドレスに関する幅広い情報が含まれています。

IP2Locationを使用するためには、データベースのコピーを取得し、アプリケーションに読み込む必要があります。データベースが読み込まれると、IPアドレスを地理的位置に変換して、関連する場所に関する情報を取得できます。

注意: データベースの異なるバージョンは、場所情報の粒度が異なります。実装に適したものを取得する必要があります。

PECLインストール概要

PECL(PHP拡張コミュニティライブラリ)は、PHPアプリケーションに追加機能を追加できるPHP拡張のリポジトリです。IP2Location拡張はPECLで利用可能な拡張の1つであり、PHPアプリケーションでIP2Locationを使用できるようにします。

IP2Location拡張を使用するには、サーバー上でPECLを使用してインストールする必要があります。拡張がインストールされると、PHPコードでIPアドレスを地理的位置に変換して、関連する場所に関する情報を取得できます。このチュートリアルでは、ApacheとPHPが既にインストールされており、Debian 11に精通していることを前提とします。

PECLを使用したPHPでのIP地理的位置特定の実装の手順

ステップ1: PECLのインストール

PHPでIP2Locationを実装する最初のステップは、PECLをインストールすることです。PECLをインストールするには、システムにPHP開発ヘッダーとツールがインストールされている必要があります。設定されていない場合は、パッケージマネージャーを使用してこれらをインストールできます。たとえば、UbuntuまたはDebianでは、次のコマンドを実行できます。

  • sudo apt-get install php-dev php-pear

ステップ2: IP2Location Cライブラリのインストール 

PHPモジュールをコンパイルするためにIP2Location Cライブラリが必要です。以下のコマンドを実行するだけで簡単にインストールできます:

  • sudo apt-get install git

これにより、gitコマンドがインストールされます。次に、IP2Locationのgithubプロジェクトをクローンするために以下のコマンドを実行します:

  • sudo git clone https://github.com/chrislim2888/IP2Location-C-Library

そして、プロジェクトフォルダ内で以下のコマンドを実行します:

 

autoreconf -i -v --force
./configure
make
make install

上記のコマンドにより、IP2Location Cライブラリがインストールされます。 

ステップ3: IP2Location拡張機能のインストール 

PECLがインストールされたので、IP2Location拡張機能をインストールできます。以下のコマンドを実行するだけです:

  • sudo pecl install ip2location

これにより、IP2Location拡張機能がPHP用にダウンロードおよびインストールされます。

ステップ4: PHPをIP2Location拡張機能を使用するように設定 

IP2Location拡張機能がインストールされたので、PHPをそれを使用するように設定する必要があります。これを行うには、php.iniファイルに行を追加する必要があります。

自分のphp.iniファイルを見つけるために、以下のコマンドを実行できます:

  • php -i | grep php.ini

これにより、php.iniファイルへのパスが出力されます。パスがわかったら、好みのテキストエディタでファイルを開くことができます。

次に、php.iniファイルに以下の行を追加してください。

  • extension=ip2location.so

これにより、PHPにIP2Location拡張機能をロードするよう指示します。

ステップ5: Apacheを再起動する

Apacheサーバーを再起動してPHPモジュールのリストを更新する必要があります。これを行うには、以下のコマンドを実行してください。

  • sudo service apache2 restart

次に、IP2Locationモジュールが正常にインストールされて読み込まれたかどうかを確認するために、以下のコマンドを入力できます。

  • php -m | grep ip2location

上記のコマンドを実行した後、IP2locationが表示されるはずです。

ステップ6: IP2Locationデータベースをダウンロードする

IP2Locationを使用してIPアドレスの場所を特定できるようにする前に、IP2Locationデータベースをダウンロードする必要があります。このデータベースには、各IPアドレスの地理的位置に関する情報が含まれています。

無料のデータベースはIP2Location LITEウェブサイトからダウンロードできます。データベースにはいくつかの異なるバージョンがあるため、自分のニーズに適したものを選択してください。

ステップ7: PHPコードを書く

IP2Location 拡張機能がインストールされ、データベースがダウンロードされたので、PHP コードで IP2Location を使用し始める準備ができています。例を示します。

PHP

 

// データベースをロード
ip2location_open('path/to/database.bin');

データベースをロードしたら、IP2Location クラスを使用して IP アドレスの位置を特定できます。例を示します。

PHP

 

// 位置情報を表示
echo 'Country code: ' . ip2location_get_country_short(‘8.8.8.8’) . “\n”';
echo 'Country name: ' . ip2location_get_country_long(‘8.8.8.8’) . “\n”;

以下の結果が表示されます。

Geolocation の PECL インストールの利点と欠点

PHP PECL は、Apache モジュールに比べて比較的簡単にインストールできます。必要な PHP 開発ヘッダーとツールのインストールだけで済み、特定の Web サーバーに縛られていないため、PHP をサポートする任意のプラットフォームで使用できます。

ただし、このソリューションを使用することの欠点もあります。PHP PECL を使用するには、PHP、Linux コマンド、パッケージ構築プロセスの基本についての知識が必要です。PHP PECL は、高トラフィックのウェブサイトに対して Apache モジュールほど効率的ではない可能性があります。これは、PHP にさらに処理の層を追加するためです。

結論実装 アプローチのメリットとデメリットを慎重に評価し、どれが特定のニーズに最適かを判断することが重要です。技術的専門知識、サーバープラットフォーム、パフォーマンス要件など、すべての要因を考慮して決定する必要があります。

Source:
https://dzone.com/articles/implementing-ip-geolocation-in-php-using-the-pecl-install