返回 GeoIP 數據庫中詳細的城市資訊

geoip_record_by_name

(PECL geoip >= 0.2.0)

geoip_record_by_name返回 GeoIP 數據庫中詳細的城市資訊

說明

geoip_record_by_name(string $hostname): array

geoip_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
)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *