PHP Conference Japan 2024

geoip_record_by_name

(PECL geoip >= 0.2.0)

geoip_record_by_name從 GeoIP 資料庫中返回找到的詳細城市資訊

說明

geoip_record_by_name(字串 $hostname): 陣列

geoip_record_by_name() 函式將返回與主機名稱或 IP 位址相對應的記錄資訊。

此函式適用於 GeoLite City 版本和商業 GeoIP City 版本。如果找不到正確的資料庫,將會發出警告。

返回的關聯陣列中不同鍵的名稱如下

  • 「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 或郵政編碼。
  • 「latitude」-- 緯度,以帶正負號的 浮點數 表示。
  • 「longitude」-- 經度,以帶正負號的 浮點數 表示。
  • 「dma_code」-- 指定市場區域代碼(僅限美國和加拿大)
  • 「area_code」-- PSTN 區域代碼(例如:212)

參數

hostname

要查詢記錄的主機名稱或 IP 位址。

返回值

成功時返回關聯陣列,如果在資料庫中找不到該位址,則返回 false

更新日誌

版本 說明
PECL geoip 1.0.4 僅在 GeoIP 函式庫 1.4.3 或更新版本中新增 continent_code。
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
)

新增註記

使用者貢獻的註記

此頁面沒有使用者貢獻的註記。
To Top