Ref/geoip-Phpdoc专题
geoip_asnum_by_name
获取自治系统号(ASN)
说明
string <span
class="methodname">geoip_asnum_by_name ( <span
class="methodparam">string $hostname
)
geoip_asnum_by_name 函数将会返回和 IP 地址相关联的自治系统号(ASN)。
参数
hostname
主机的 IP 地址。
返回值
如果成功将会返回自治系统号,如果在数据库中未找到相关信息则返回
false 。
范例
示例 #1 <span class="function">geoip_asnum_by_name函数的范例:
以下代码将会输出 www.example.com 域名的 ASN。
<?php
$asn = geoip_asnum_by_name('www.example.com');
if ($asn) {
echo 'The ASN is: ' $asn;
}
?>
以上例程会输出:
The ASN is: AS15133 EdgeCast Networks, Inc
geoip_continent_code_by_name
获取七大洲的大写字母简称
说明
string <span
class="methodname">geoip_continent_code_by_name ( <span
class="methodparam">string $hostname
)
geoip_continent_code_by_name 函数将会返回主机或者IP地址相对应的七大洲大写字母简称。
参数
hostname
所要定位的主机或IP地址。
返回值
成功,返回两个大写字母组成的七大洲简称字符串,
如果在数据库中未找到相关信息则返回 false 。
| Code | 洲名 |
|---|---|
| AF | 非洲 |
| AN | 南极洲 |
| AS | 亚洲 |
| EU | 欧洲 |
| NA | 北美洲 |
| OC | 大洋洲 |
| SA | 南美洲 |
范例
示例 #1 <span class="function">geoip_continent_code_by_name 函数的使用范例:
以下代码将会打印 example.com 的定位信息。
<?php
$continent = geoip_continent_code_by_name('www.example.com');
if ($continent) {
echo 'This host is located in: ' . $continent;
}
?>
以上例程会输出:
This host is located in: NA
参见
- geoip_country_code_by_name
geoip_country_code_by_name
获取国家代码
说明
string <span
class="methodname">geoip_country_code_by_name ( <span
class="methodparam">string $hostname
)
geoip_country_code_by_name 函数将会返回主机或者IP地址所在的国家代码。
参数
hostname
定位的主机名或者IP地址。
返回值
成功,返回 ISO 定义的国家代码,如果在数据库中未找到相关信息则返回
false 。
范例
示例 #1 geoip_country_code_by_name 函数的范例:
以下代码将会打印 example.com 主机的定位信息。
<?php
$country = geoip_country_code_by_name('www.example.com');
if ($country) {
echo 'This host is located in: ' . $country;
}
?>
以上例程会输出:
This host is located in: US
注释
Caution
请点击 » http://www.maxmind.com/en/iso3166 来查看所有可能的返回值列表,包括特殊代码。
参见
- geoip_country_code3_by_name
- geoip_country_name_by_name
geoip_country_code3_by_name
获取三个字母组成的国家简称
说明
string <span
class="methodname">geoip_country_code3_by_name ( <span
class="methodparam">string $hostname
)
geoip_country_code3_by_name 函数返回由三个字母组成和主机或者 IP 相对应的国家代码。
参数
hostname
定位所用的主机名或者 IP 地址。
返回值
成功,返回由三个字母组成的国家简称,如果在数据库中未找到相关信息则返回
false 。
范例
示例 #1 geoip_country_code3_by_name 函数的使用范例:
以下代码将会打印 example.com 主机的定位信息。
<?php
$country = geoip_country_code3_by_name('www.example.com');
if ($country) {
echo 'This host is located in: ' . $country;
}
?>
以上例程会输出:
This host is located in: USA
参见
- geoip_country_code_by_name
- geoip_country_name_by_name
geoip_country_name_by_name
获取国家的全称
说明
string <span
class="methodname">geoip_country_name_by_name ( <span
class="methodparam">string $hostname
)
geoip_country_name_by_name 函数返回主机或者 IP 地址所对应的国家名全称。
参数
hostname
定位所用的主机或者 IP 地址。
返回值
成功,返回国家全称,如果在数据库中未找到相关信息则返回 false 。
范例
示例 #1 geoip_country_name_by_name 函数的使用范例:
以下代码将会打印 example.com 主机的定位信息。
<?php
$country = geoip_country_name_by_name('www.example.com');
if ($country) {
echo 'This host is located in: ' . $country;
}
?>
以上例程会输出:
This host is located in: United States
参见
- geoip_country_code_by_name
- geoip_country_code3_by_name
geoip_database_info
获取 GeoIP 数据库的信息
说明
string <span
class="methodname">geoip_database_info ([ <span
class="methodparam">int $database<span
class="initializer"> = GEOIP_COUNTRY_EDITION ] )
geoip_database_info 函数返回 GeoIP 数据库版本的信息。
如果无参调用该函数,则返回 GeoIP 免费国家版的版本信息。
参数
database
该变量的类型为整型。你可以使用该扩展的预定义常量(类似:
GEOIP_*_EDITION)。
返回值
如果成功,返回数据库的版本信息,错误则返回null 。
范例
示例 #1 geoip_database_info 函数的使用范例:
以下代码将会输出数据库的相关信息。
<?php
print geoip_database_info(GEOIP_COUNTRY_EDITION);
?>
以上例程会输出:
GEO-106FREE 20060801 Build 1 Copyright (c) 2006 MaxMind LLC All Rights Reserved
geoip_db_avail
GeoIP 数据库是否可用
说明
bool <span
class="methodname">geoip_db_avail ( <span
class="methodparam">int $database )
geoip_db_avail 函数返回 GeoI P数据库是否可以在磁盘上打开并且可用。
该函数不能用来判断是否是个合适的数据库,除非这个数据库可读。
参数
database
变量类型为整型。你可以使用该扩展的预定义常量(比如:
GEOIP_*_EDITION)。
返回值
如果存在则返回 true , 未找到则返回 false , 错误则返回
null 。
范例
示例 #1 geoip_db_avail 函数的使用范例:
以下代码将会输出当前数据库的版本信息。
<?php
if (geoip_db_avail(GEOIP_COUNTRY_EDITION))
print geoip_database_info(GEOIP_COUNTRY_EDITION);
?>
以上例程会输出:
GEO-106FREE 20080801 Build 1 Copyright (c) 2006 MaxMind LLC All Rights Reserved
geoip_db_filename
返回 GeoIP 数据库相对应的文件名
说明
string <span
class="methodname">geoip_db_filename ( <span
class="methodparam">int $database )
geoip_db_filename 函数将会返回和 GeoIP 数据库相对应的文件名。
这个函数不会判别文件是否存在在磁盘上,只会表明拓展库在哪里查找数据库。
参数
database
该参数为整型。你可以使用该扩展的预定义常量
(比如: GEOIP_*_EDITION)。
返回值
成功则返回相对应的数据库文件名,错误则返回null 。
范例
示例 #1 <span class="function">geoip_db_filename函数的使用范例:
如下代码将会打印数据库相对应的文件名。
<?php
print geoip_db_filename(GEOIP_COUNTRY_EDITION);
?>
以上例程会输出:
/usr/share/GeoIP/GeoIP.dat
geoip_db_get_all_info
返回所有 GeoIP 数据库类型的详细信息
说明
array <span class="methodname">geoip_db_get_all_info ( <span class="methodparam">void )
geoip_db_get_all_info 函数将会返回包含所有 GeoIP 数据库类型详细信息的多维数组
即使没有安装数据库,这个函数依旧可用。它将会列出数据库是否可用。
返回的关联数组,各键值所代表的含义如下:
- "available" -- 布尔值, 表示数据库是否可用(请参考 <span class="function">geoip_db_avail)
- "description" -- 数据库的描述
- "filename" -- 磁盘上的数据库文件名(请参考 geoip_db_filename)
返回值
返回一个关联数组。
范例
示例 #1 geoip_db_get_all_info 使用范例:
以下代码将会打印包含所有信息的数组。
<?php
$infos = geoip_db_get_all_info();
if (is_array($infos)) {
var_dump($infos);
}
?>
以上例程会输出:
array(11) {
[1]=>
array(3) {
["available"]=>
bool(true)
["description"]=>
string(21) "GeoIP Country Edition"
["filename"]=>
string(32) "/usr/share/GeoIP/GeoIP.dat"
}
[ ... ]
[11]=>
array(3) {
["available"]=>
bool(false)
["description"]=>
string(25) "GeoIP Domain Name Edition"
["filename"]=>
string(38) "/usr/share/GeoIP/GeoIPDomain.dat"
}
}
示例 #2 geoip_db_get_all_info 使用范例:
你可以使用不同的常量作为键来获取部分信息。
<?php
$infos = geoip_db_get_all_info();
if ($infos[GEOIP_COUNTRY_EDITION]['available']) {
echo $infos[GEOIP_COUNTRY_EDITION]['description'];
}
?>
以上例程会输出:
GeoIP Country Edition
geoip_domain_by_name
获取二级域名
说明
string <span
class="methodname">geoip_domain_by_name ( <span
class="methodparam">string $hostname
)
geoip_domain_by_name 函数将会返回和主机或者 IP 地址相关联的二级域名。
当前该函数只对购买了商业 GeoIP 域名版本的用户是可用的。如果没有该版本的数据库,使用该函数时将会抛出一个警告。
参数
hostname
主机名或者 IP 地址。
返回值
成功,返回域名,如果在数据库中未找到信息则返回 false 。
范例
示例 #1 一个 geoip_domain_by_name 使用范例:
以下代码将会输出和 IP 61.106.139.1相关联的域名。
<?php
$domain = geoip_domain_by_name('61.106.139.1');
if ($domain) {
echo 'The domain is: '. $domain;
}
?>
以上例程会输出:
The domain is: von.co.kr
geoip_id_by_name
获取网络连接类型
说明
int <span
class="methodname">geoip_id_by_name ( <span
class="methodparam">string $hostname
)
geoip_id_by_name 函数将会返回和主机名或者 IP 地址相对应的网络连接类型。
函数返回值是数字可以和以下常量对照:
- GEOIP_UNKNOWN_SPEED
- GEOIP_DIALUP_SPEED
- GEOIP_CABLEDSL_SPEED
- GEOIP_CORPORATE_SPEED
参数
hostname
要查找连接类型的主机或者 IP 地址。
返回值
返回连接类型。
范例
示例 #1 一个 geoip_id_by_name 使用范例:
以下将会输出 example.com 主机的连接类型。
<?php
$netspeed = geoip_id_by_name('www.example.com');
echo 'The connection type is ';
switch ($netspeed) {
case GEOIP_DIALUP_SPEED:
echo 'dial-up';
break;
case GEOIP_CABLEDSL_SPEED:
echo 'cable or DSL';
break;
case GEOIP_CORPORATE_SPEED:
echo 'corporate';
break;
case GEOIP_UNKNOWN_SPEED:
default:
echo 'unknown';
}
?>
以上例程会输出:
The connection type is corporate
geoip_isp_by_name
获取 ISP (网络服务提供商)的名称
说明
string <span
class="methodname">geoip_isp_by_name ( <span
class="methodparam">string $hostname
)
geoip_isp_by_name 函数将会返回 IP 地址所归属的网络服务提供商(ISP)的名称。
目前,该函数只对购买了商业 GeoIP ISP 版本的用户可用,否则将会抛出一个警告!
参数
hostname
主机或者 IP 地址。
返回值
成功,则返回 ISP 名称,未找到相关信息则返回 false 。
范例
示例 #1 一个 geoip_isp_by_name 使用范例:
以下代码将会输出 example.com 主机的 ISP 名称。
<?php
$isp = geoip_isp_by_name('www.example.com');
if ($isp) {
echo 'This host IP is from ISP: ' . $isp;
}
?>
以上例程会输出:
This host IP is from ISP: ICANN c/o Internet Assigned Numbers Authority
geoip_netspeedcell_by_name
获取网络连接速度
说明
string <span
class="methodname">geoip_netspeedcell_by_name ( <span
class="methodparam">string $hostname
)
geoip_netspeedcell_by_name 函数将会返回主机或者 IP 地址对应的网络连接类型和速度。
该函数只有在 GeoIP 1.4.8 版本以上才能使用。
目前,该函数只对购买了商业 GeoIP NetSpeedCell 版本的用户可用,否则将会抛出一个警告!
返回值为字符串,结果集如下:
- Cable/DSL
- Dialup
- Cellular
- Corporate
参数
hostname
主机名或者 IP 地址。
返回值
成功,返回连接速度,未找到相关信息则返回 false 。
范例
示例 #1 一个 <span class="function">geoip_netspeedcell_by_name 使用范例:
以下代码将会输出 example.com 主机的连接速度。
<?php
$netspeed = geoip_netspeedcell_by_name('www.example.com');
if ($netspeed) {
echo 'The connection type is: '. $netspeed;
}
?>
以上例程会输出:
The connection type is: Corporate
geoip_org_by_name
获取机构的名称
说明
string <span
class="methodname">geoip_org_by_name ( <span
class="methodparam">string $hostname
)
geoip_org_by_name 函数将会返回 IP 地址所分配的机构名称。
目前,该函数只对购买了商业 GeoIP Organization, ISP 或者 AS 版本的用户可用,否则将会抛出一个警告!
参数
hostname
主机名或者 IP 地址。
返回值
成功, 返回组织的名称,未找到相关信息则返回 false 。
范例
示例 #1 一个 geoip_org_by_name 使用范例:
以下代码将会打印 example.com 主机的所有者。
<?php
$org = geoip_org_by_name('www.example.com');
if ($org) {
echo 'This host IP is allocated to: ' . $org;
}
?>
以上例程会输出:
This host IP is allocated to: ICANN c/o Internet Assigned Numbers Authority
geoip_record_by_name
返回 GeoIP 数据库中详细的城市信息
说明
array <span
class="methodname">geoip_record_by_name ( <span
class="methodparam">string $hostname
)
geoip_record_by_name 函数将会返回主机或者 IP 地址所对应的记录信息。
该函数在 GeoLite City 版本和商业 GeoIP City 版本中可用。 版本不对的话,将会抛出一个警告。
返回的关联数组不同的键名对应如下:
- "continent_code" -- 由两个字符组成的洲简称。(要求 GeoIP 的库版本是1.0.4以上)
- "country_code" -- 由2个字母组成的国家简称。(参见 <span class="function">geoip_country_code_by_name)
- "country_code3" -- 由三个字母组成的国家简称。(参见 <span class="function">geoip_country_code3_by_name)
- "country_name" -- 国家名称 (参见 <span class="function">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
)
geoip_region_by_name
获取国家和地区代码
说明
array <span
class="methodname">geoip_region_by_name ( <span
class="methodparam">string $hostname
)
geoip_region_by_name 函数将会返回与主机或者 IP 地址相关的国家和地区代码。
该函数只对购买了商业 GeoIP Region 版本的用户可用。否则将会抛出一个警告!
所返回的关联数组的各字段具体含义如下:
- "country_code" -- 由两个字母组成的国家代码(参见 <span class="function">geoip_country_code_by_name)
- "region" -- 地区代码。 (比如: CA 对应 California)
参数
hostname
查找的主机或者 IP 地址。
返回值
成功,返回关联数组, 如果信息未找到则返回 false。
范例
示例 #1 geoip_region_by_name 例子:
以下例程将会打印对应 example.com 主机的包含国家和地区代码的关联数组。
<?php
$region = geoip_region_by_name('www.example.com');
if ($region) {
print_r($region);
}
?>
以上例程会输出:
Array
(
[country_code] => US
[region] => CA
)
geoip_region_name_by_code
返回给定的国家和地区代码组合所对应的地区名称
说明
string <span
class="methodname">geoip_region_name_by_code ( <span
class="methodparam">string
$country_code , <span
class="type">string $region_code )
geoip_region_name_by_code 函数将会返回与给定的国家和地区代码组合相对应的地区名称。
在美国,地区代码是每个州对应的两个字母的缩写,而在加拿大,则是由两个字母组成的每个省的邮政编码。
在世界其他地区,GeoIP使用 FIPS 给定的10到4位的代码来表示各地区。你可以点击以下连接 » http://www.maxmind.com/app/fips10_4 查看详细信息。
该函数只在 GeoIP 1.4.1版本以上的库才可用。并且结果集的数据来源是直接从 GeoIP 库中获取的,而不是从任何数据库中。
参数
country_code
由两个字母组成的国家代码 (参见 <span
class="function">geoip_country_code_by_name)
region_code
由两个字母组成的地区代码 (参见 <span
class="function">geoip_region_by_name)
返回值
成功,返回地区名字,如果相关信息未找到则返回 false 。
范例
示例 #1 geoip_region_name_by_code 使用美国和加拿大地区的范例。
以下例程将会打印国家简称为 CA (加拿大),地区简称为 QC (魁北克)的地区名:
<?php
$region = geoip_region_name_by_code('CA', 'QC');
if ($region) {
echo 'Region name for CA/QC is: ' . $region;
}
?>
以上例程会输出:
Region name for CA/QC is: Quebec
示例 #2 geoip_region_name_by_code 使用 FIPS 代码的范例:
以下例程将会打印国家简称为 JP (日本)地区代码为 01的地区名称。
<?php
$region = geoip_region_name_by_code('JP', '01');
if ($region) {
echo 'Region name for JP/01 is: ' . $region;
}
?>
以上例程会输出:
Region name for JP/01 is: Aichi
geoip_setup_custom_directory
自定义 GeoIP 数据库的目录
说明
void <span
class="methodname">geoip_setup_custom_directory ( <span
class="methodparam">string $path )
geoip_setup_custom_directory 函数将会更改 GeoIP 数据库的默认目录。这个设置和直接在 php 配置文件中设置的geoip.custom_directory参数效果是一样的。
参数
path
磁盘上 GeoIP 数据库的绝对路径。
返回值
没有返回值。
范例
示例 #1 geoip_setup_custom_directory 例子:
以下例程将会更改 GeoIP 默认数据库的路径。
<?php
geoip_setup_custom_directory('/some/other/path');
print geoip_db_filename(GEOIP_COUNTRY_EDITION);
?>
以上例程会输出:
/some/other/path/GeoIP.dat
geoip_time_zone_by_country_and_region
返回国家和地区的时区
说明
string <span
class="methodname">geoip_time_zone_by_country_and_region (
string
$country_code [, <span
class="type">string $region_code ] )
<span class="function">geoip_time_zone_by_country_and_region 函数将会返回与国家或者地区相对应的时区。
在美国,地区代码是每个州对应的两个字母的缩写,而在加拿大,则是由两个字母组成的每个省的邮政编码。
在世界上其他地区,GeoIP 使用 FIPS 给定的10到4位的代码来表示各地区。你可以点击以下连接 » http://www.maxmind.com/app/fips10_4 查看详细信息。
该函数只在 GeoIP 1.4.1版本以上的库才可用。并且结果集的数据来源是直接从 GeoIP 库中获取的,而不是从任何数据库中。
参数
country_code
由两个字母组成的国家代码 (参见 <span
class="function">geoip_country_code_by_name)
region_code
由两个字母组成的地区代码 (参见 <span
class="function">geoip_region_by_name)
返回值
成功,返回地区名字,如果相关信息未找到则返回 false 。
范例
示例 #1 <span class="function">geoip_time_zone_by_country_and_region 使用美国和加拿大地区的范例:
以下例程将会打印国家简称为 CA (加拿大),地区简称为 QC (魁北克)的时区。
<?php
$timezone = geoip_time_zone_by_country_and_region('CA', 'QC');
if ($timezone) {
echo 'Time zone for CA/QC is: ' . $timezone;
}
?>
以上例程会输出:
Time zone for CA/QC is: America/Montreal
示例 #2 <span class="function">geoip_time_zone_by_country_and_region 使用 FIPS 代码的范例:
以下例程将会打印国家简称为 JP (日本),地区代码为 01的时区。
<?php
$timezone = geoip_time_zone_by_country_and_region('JP', '01');
if ($timezone) {
echo 'Time zone for JP/01 is: ' . $timezone;
}
?>
以上例程会输出:
Time zone for JP/01 is: Asia/Tokyo
目录
- geoip_asnum_by_name — 获取自治系统号(ASN)
- geoip_continent_code_by_name — 获取七大洲的大写字母简称
- geoip_country_code_by_name — 获取国家代码
- geoip_country_code3_by_name — 获取三个字母组成的国家简称
- geoip_country_name_by_name — 获取国家的全称
- geoip_database_info — 获取 GeoIP 数据库的信息
- geoip_db_avail — GeoIP 数据库是否可用
- geoip_db_filename — 返回 GeoIP 数据库相对应的文件名
- geoip_db_get_all_info — 返回所有 GeoIP 数据库类型的详细信息
- geoip_domain_by_name — 获取二级域名
- geoip_id_by_name — 获取网络连接类型
- geoip_isp_by_name — 获取 ISP (网络服务提供商)的名称
- geoip_netspeedcell_by_name — 获取网络连接速度
- geoip_org_by_name — 获取机构的名称
- geoip_record_by_name — 返回 GeoIP 数据库中详细的城市信息
- geoip_region_by_name — 获取国家和地区代码
- geoip_region_name_by_code — 返回给定的国家和地区代码组合所对应的地区名称
- geoip_setup_custom_directory — 自定义 GeoIP 数据库的目录
- geoip_time_zone_by_country_and_region — 返回国家和地区的时区