geoip_record_by_name
(PECL geoip >= 0.2.0)
geoip_record_by_name — 返回 GeoIP 數據庫中詳細的城市資訊
說明
geoip_record_by_name(string
$hostname): arraygeoip_record_by_name() 函式將會返回主機或者 IP 地址所對應的記錄資訊。
該函式在 GeoLite City 版本和商業 GeoIP City 版本中可用。 版本不對的話,將會拋出一個警告。
返回的關聯陣列不同的鍵名對應如下:
- "continent_code" -- 由兩個字元組成的洲簡稱。(要求 GeoIP 的庫版本是1.0.4以上)
- "country_code" -- 由2個字母組成的國家簡稱。(參見 geoip_country_code_by_name())
- "country_code3" -- 由三個字母組成的國家簡稱。(參見 geoip_country_code3_by_name())
- "country_name" -- 國家名稱 (參見 geoip_country_name_by_name())
- "region" -- 地區程式碼 (比如: CA 對應 California)
- "city" -- 城市名稱。
- "postal_code" -- 郵編,FSA 或者 Zip 編碼。
- "latitude" -- 有符號的雙精度緯度。
- "longitude" -- 有符號的雙精度經度。
- "dma_code" -- 指定市場區號 (只支援美國和加拿大)
- "area_code" -- PSTN (公共交換電話網路)地區程式碼。 (比如: 212)
參數
-
hostname -
所要查詢的主機或者 IP 地址。
返回值
成功,返回關聯陣列,未找到相關資訊則返回 false 。
更新日誌
| 版本 | 說明 |
|---|---|
| 1.0.4 | 給 GeoIP 1.4.4及以上版本的庫新增 continent_code 欄位。 |
| 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
)