Net_GeoIP::lookupCountryName()
Net_GeoIP::lookupCountryName() –
指定した IP アドレスに対応する国名を返す
Synopsis
require_once "Net/GeoIP.php";
string lookupCountryName() (
string $addr
)
Description
このメソッドは、指定した IP アドレスに対応する国名を返します。
フリー版、非フリー版のどちらのデータベースでも使用可能です。
<?php
require_once "Net/GeoIP.php";
$geoip = Net_GeoIP::getInstance("/path/to/geoipdb.dat");
try {
echo $geoip->lookupCountryName($_SERVER['REMOTE_ADDR']);
} catch (Exception $e) {
// 例外処理
}
?>
Parameter
-
string $addr
- IP アドレス。
ホスト名の検索
この PHP API は、ホスト名による検索をサポートしていないことに注意しましょう。
これにより公開 API をシンプルに保つことが可能となり、
IP 検索が失敗した場合に名前による検索を試みる必要がなくなります
(API をシンプルに保ちつつ名前ベースの検索をサポートするには、
これが唯一の方法でしょう)。
IP アドレスがわからない場合は、PHP のネイティブ関数やその他のライブラリを使用すれば
簡単にホスト名から IP アドレスを取得できます。
<?php
$geoip->lookupCountryName(gethostbyname("example.com"));
?>
あるいは、名前と IP アドレスのどちらが指定されるかわからない場合には、
アプリケーションレベルでロジックを作成しましょう。
<?php
if (ip2long($ip_or_name) === false) {
$ip = gethostbyname($ip_or_name);
} else {
$ip = $ip_or_name;
}
$country = $geoip->lookupCountryName($ip);
?>
Throws
IP アドレスが無効な場合、あるいはデータベースの形式が不正な場合に
このメソッドは例外をスローします。