如何使用IPv6的geoip数据?

时间:2013-06-30 01:16:40

标签: php ipv6 geoip

这是我使用的代码

$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
$buffer= geoip_country_code_by_addr($gi, $ip); 
geoip_close($gi);
return $buffer;

表示IPv4。

我应该如何修改代码以支持IPv6和IP4?

1 个答案:

答案 0 :(得分:4)

为了使其正常工作,您需要从MaxMind下载IPv6数据库。您可以在以下网址找到:

http://dev.maxmind.com/geoip/legacy/geolite/

将geoip_open指向IPv6文件后,您应该能够查找IPv6地址。

例如:

$database = (strpos($ip, ":") === false) ? "GeoIP.dat" : "GeoLiteCityv6.dat";
$gi = geoip_open($database, GEOIP_STANDARD);

其余的将和以前一样。

也就是说,您可能需要考虑重构,这样您就不会在每次调用时打开和关闭数据库。