为什么只返回部分geoip值?

时间:2015-08-29 05:01:23

标签: php apache2

我在Ubuntu 12.04上运行Apache2的Web服务器。我已安装geoip-databaselibapache2-mod-geoip1.2.5-2libgeoip1 1.4.8+dfsg-2php5-geoip

我把这个测试PHP代码放在我的服务器上:

<?php
echo "country: " . apache_note("GEOIP_COUNTRY_NAME") . '<br>';
echo "code: " . apache_note("GEOIP_COUNTRY_CODE") . '<br>';
echo "city: " . apache_note("GEOIP_CITY") . '<br>';
echo "region: " . apache_note("GEOIP_REGION") . '<br>';
echo "latitude: " . apache_note("GEOIP_LATITUDE") . '<br>';
echo "longitude: " . apache_note("GEOIP_LONGITUDE") . '<br>';
echo "timezone: " . geoip_time_zone_by_country_and_region($this->countryCode, $this->region);

当我在浏览器中访问它时,我得到了这个输出:

country: Japan
code: JP
city:
region:
latitude:
longitude: 
timezone:

我对只有两个值回来的事实感到困惑。如果没有正确安装GeoIP模块,它是否会在没有任何值的情况下完全失败?

是否有一些我遗漏的图书馆或其他东西?

如何让我的代码返回所有值,例如纬度和经度?

1 个答案:

答案 0 :(得分:1)

您可能正在使用免费的GeoLite IP数据库。该数据库仅包含国家/地区信息。

包含更多详细信息(如纬度和经度)的数据库可从Maxmind以付费方式获得。