2024 年 PHP 日本大会

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 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 或邮政编码。
  • "latitude" -- 纬度,带符号的 float
  • "longitude" -- 经度,带符号的 float
  • "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