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 )