4

我可以通过我当前的主机访问 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] => --
)
4

1 回答 1

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);
于 2011-12-12T21:25:45.477 回答