geoip_record_by_name

GeoIP データベースで見つかった詳細な都市情報を返す

説明

array geoip_record_by_name(string $hostname)

geoip_record_by_name 関数は、 ホスト名あるいは IP アドレスに対応するレコード情報を返します。

この関数は、GeoLite City Edition および商用の GeoIP City Edition のどちらでも使用可能です。 適切なデータベースが見つからない場合には警告が発生します。

返される連想配列には、以下のようなさまざまな名前のキーが含まれます。

  • "continent_code" -- 二文字の大陸コード (バージョン 1.0.4 以降で libgeoip 1.4.3 以降を使用した場合)
  • "country_code" -- 二文字の国コード (geoip_country_code_by_name を参照ください)
  • "country_code3" -- 三文字の国コード (geoip_country_code3_by_name を参照ください)
  • "country_name" -- 国名 (geoip_country_name_by_name を参照ください)
  • "region" -- 地域コード (例: カリフォルニアなら CA)
  • "city" -- 市
  • "postal_code" -- 郵便番号、FSA あるいは Zip コード
  • "latitude" -- 緯度 (符号付き浮動小数点形式(float))
  • "longitude" -- 経度 (符号付浮動小数点形式(float))
  • "dma_code" -- Designated Market Area コード (アメリカおよびカナダのみ)
  • "area_code" -- PSTN エリアコード (例: 212)

パラメータ

hostname

レコードを探す対象となるホスト名あるいは IP アドレス。

戻り値

成功した場合には連想配列、 アドレスがデータベースで見つからない場合には false を返します。

変更履歴

バージョン 説明
PECL geoip 1.0.4 continent_code が GeoIP Library 1.4.3 以降でのみ使えるようになりました。
PECL geoip 1.0.3 country_code3 および country_name が追加されました。

例1 geoip_record_by_name の例

これは、ホスト example.com のレコードを含む連想配列を表示します。

<?php
$record = geoip_record_by_name('www.example.com');
if ($record) {
    print_r($record);
}
?>

上の例の出力は以下となります。

Array
(
    [continent_code] => NA
    [country_code] => US
    [country_code3] => USA
    [country_name] => United States
    [region] => CA
    [city] => Marina Del Rey
    [postal_code] => 
    [latitude] => 33.9776992798
    [longitude] => -118.435096741
    [dma_code] => 803
    [area_code] => 310
)