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 字段。 |
范例
Example #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 )