2015-08-29 48 views
0

我有一个在Ubuntu 12.04上运行Apache2的web服务器。我已经安装了geoip-database,libapache2-mod-geoip1.2.5-2,libgeoip1 1.4.8+dfsg-2php5-geoip为什么只返回一些这些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

您可能正在使用免费的GeoLite IP数据库。这个数据库只包含国家信息。

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

+0

这是一直如此吗?我确信在过去,我无需购买任何东西即可获得经纬度。 – Questioner

+0

我不知道这是否总是如此,但如果不是这样,很长一段时间(如5 - 10年)。毕竟Maxmind不是一个慈善机构。 – duskwuff

相关问题