PHP | 開発者向けライブラリ | IP Geolocation API | WhoisXML API

PHPのIP Geolocationクライアントライブラリ PHPのIP Geolocationクライアントライブラリ

PHPによるIPジオロケーション検索

ここでは、PHPを使用してIPアドレスの物理的位置(IPジオロケーション)を見つける最良の方法を説明します。

残念ながら、IPアドレスの物理的な位置を特定するための確固としたルールはありません。その代わりに、IPジオロケーションプロバイダーと呼ばれる企業が、多くの異なるデータを組み合わせて、IPロケーションデータの正確なデータベースを構築しています。

IPジオロケーションデータは通常、以下の情報で構成されます。

  • ドメイン名のWHOISデータ(データプロバイダーが集約するものです)。
  • 地域インターネットレジストリ。大規模なIPアドレスブロックを世界中のさまざまなインターネットサービスプロバイダー(ISP)に配布します。
  • 大規模ISPからのBGPフィード
  • レイテンシー情報(特定の物理的な場所からのパケットが宛先のIPアドレスに到達するまでにかかる時間)

上記の情報を全て自分で取得するのは非常に複雑で費用もかかります。しかし、この作業をすでに済ませ、顧客が容易に利用できる状態にしたIPジオロケーションデータを提供しているサービスプロバイダーがいくつかあります。

ここでは、当社で新たにリリースしたsimple-geoip PHPライブラリを使用してIP Geolocation Databaseを検索し、IPアドレスの物理的な場所を応答させる方法を説明します。

IP Geolocation API Lookupのアカウントを作成する

simple-geoipのライブラリを使用するには、まず無料のIP Geolocation APIアカウントを作成する必要があります:https://ip-geolocation.whoisxmlapi.com/signup

IP Geolocation APIは、IPジオロケーション業界最大規模・最低コストを誇るAPIの一つです。毎月最大1,000クエリまで無料で実行できます。または、100,000クエリに対して月額27 ドルの定額料金プランもご用意しています。追加料金プランはこちらでご利用いただけます。

IP Geolocation API アカウントを作成してログインしたら、アカウントの商品ページを表示してAPIキーをコピーする必要があります。これは後でIP Geolocation検索をする際に必要となります。

simple-geoipパッケージをインストールする

アカウントが設定されましたので、次にパッケージをインストールします。コマンドラインから以下のコマンドを実行します。

                
$ composer require whois-api/simple-geoip
                
                

これにより、packagistからsimple-geoipパッケージの最新リリースがダウンロードされ、インストールされます。

simple-geoipを使用してIP Geolocation Lookupを実行する

次に、IPアドレスのジオロケーション検索のために実行できるコードを見てみましょう。

以下は、よく使われているIPアドレス (GoogleのコアDNS サーバーの一つ「8.8.8.8」)の物理的位置を検索する「geoip.php」というスクリプトです。

            
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use WhoisApi\SimpleGeoip\Builders\ClientBuilder;
$builder = new ClientBuilder();
$client = $builder->build('API_KEY');
try {
    echo $client->getRawData('8.8.8.8') . PHP_EOL;
    echo print_r($client->get('8.8.8.8'), true) . PHP_EOL;
} catch(\Exception $e) {
    echo $e->getMessage();
}
            
            

以下の3つの手順でライブラリを使えるようになります。

  • Composerの自動ロードファイルを用意します。
  • クライアントを構築するビルダーをインポートします。
  • IP Geolocation APIサービスのために作成したAPIキーを入力し、ビルダーを使用してAPIクライアントオブジェクトを構築します。
  • 確認したいIPアドレスを入力して「getRawData」を実行します。結果の形式(jsonまたはxml) を指定することもできます。この方法により、結果を含む文字列がさまざまな形式(json/xml)で返されます。
  • 位置情報を取得したいIPアドレスを入力して「get」を実行します。この方法により、住所、郵便番号、タイムゾーンなどの解析済みデータを含む ResponseModelオブジェクトが返されます。

次のようなデータが「get」で返されます。

            
WhoisApi\SimpleGeoip\Models\Response Object ( [ip] => 8.8.8.8 [location] => WhoisApi\SimpleGeoip\Models\Location Object ( [country] => US [region] => California [city] => Mountain View [lat] => 37.40599 [lng] => -122.078514 [postalCode] => 94043 [timezone] => -07:00 ) )
            
            

このPHPオブジェクトは、「8.8.8.8」というIPアドレスの物理的位置に関する必要な全ての情報を示しています。

舞台裏では、IP Geolocation APIサービスが全てのIP Geolocationデータベース検索とデータ集約(プロバイダーからデータを取得し、1日あたり数百万件の更新を処理)を行っています。

新しいIP Geolocationデータを使用する

simple-geoipライブラリを使用してIPアドレスの物理的位置を簡単に見つけられることがわかりました。次はIP Geolocation検索を貴社の商品やサービスに実装しましょう!

以下は、IP Geolocationデータの一般的なユースケースです。

  • ウェブサイトを訪問したユーザーの国を検出し、その場所(の言語、広告、デザイン、通貨など)に基づいてカスタマイズされたエクスペリエンスを提供します。
  • 特定の場所からウェブサイトにアクセスするユーザーをブロックします。例えば、動画ストリーミングプロバイダーで、特定の国でのみ動画をストリーミングする権利を持っている場合、IP Geolocation検索によってそのデータを取得し、合法的に運営できる地域の顧客にのみサービスを提供することができます。
  • 不正行為のリスクを軽減します。特定の場所からの大量の不正行為に気づいた場合、その場所からの訪問者を一時的にブロックすることが、不正行為やその他の問題をすみやかに軽減する方法となります。

ウェブサイト訪問者のIPアドレスを分析することで、ウェブ製品やサービスを大幅に向上させることができます。

simple-geoipを使用する

まとめ:IP Geolocation検索は、簡単に低コストで実行できます。当社の新しいhttps://github.com/whois-api-llc/php-simple-geoip PHPライブラリとIP Geolocation APIサービスを使えば、大規模なウェブプロダクトでも、わずかな費用で簡単に構築・管理できます。

IP Geolocation検索を実行する際は、IPアドレスの位置情報を非常に簡単に取得できるsimple-geoipライブラリをぜひチェックしてください。

ご質問がございましたら、こちらにメールでお問い合わせください。