我可以通过当前主机访问GeoIP.dat文件,但我输入的每个IP都是空的。知道什么可能是错的或解决它的方法?我有php错误,但我没有看到任何错误。
这是我目前的剧本:
<?php
include('geoip.inc');
include('geoipcity.inc');
include('geoipregionvars.php');
$gi = geoip_open("GeoIP.dat", GEOIP_STANDARD);
$rsGeoData = geoip_record_by_addr($gi, $_SERVER['REMOTE_ADDR']);
echo("<pre>");
print_r($rsGeoData);
echo("</pre>");
geoip_close($gi);
?>
结果总是如下:
geoiprecord Object
(
[country_code] =>
[country_code3] =>
[country_name] =>
[region] =>
[city] =>
[postal_code] =>
[latitude] => -180
[longitude] => -180
[area_code] =>
[dma_code] =>
[metro_code] =>
[continent_code] => --
)
答案 0 :(得分:2)
确保使用的是正确版本的GeoIP。我有这个代码,它正常工作。请注意不同的数据库文件:
include("geoipcity.inc");
include("geoipregionvars.php");
$gi = geoip_open('geolitecity.dat', GEOIP_STANDARD);
$record = geoip_record_by_addr($gi, ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') ? '83.238.225.249' : $_SERVER['REMOTE_ADDR']);
geoip_close($gi);