(PECL geoip >= 0.2.0)
geoip_record_by_name — GeoIP データベースで見つかった詳細な都市情報を返す
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
)