获取用户的大陆/国家或地点?

时间:2013-09-11 19:42:19

标签: php wordpress geolocation

是否可以从访问网站的用户那里获取大陆? 我知道我可以像这样获得浏览器的语言:::

<?php
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang){
    case "fr":
        //echo "PAGE FR";
        include("index_fr.php");//include check session FR
        break;
    case "it":
        //echo "PAGE IT";
        include("index_it.php");
        break;
    case "en":
        //echo "PAGE EN";
        include("index_en.php");
        break;        
    default:
        //echo "PAGE EN - Setting Default";
        include("index_en.php");//include EN in all other cases of different lang detection
        break;
}
?>

REF

我也知道有php函数调用 - &gt; geoip_continent_code_by_name 如果传递带有主机名的字符串,它将返回我:

代码大陆名称

AF  Africa
AN  Antarctica
AS  Asia
EU  Europe
NA  North america
OC  Oceania
SA  South america

但是这只返回主机名,所以有没有办法获得相同的结果,但对于访问该网站的用户?或甚至可以做到?

2 个答案:

答案 0 :(得分:1)

您可以根据$ _SERVER [&#34; REMOTE_ADDR&#34;]中的用户IP地址获取地理位置数据库,并从那里确定城市/国家/地区。

MaxMind在这里提供免费的城市/国家数据库: http://dev.maxmind.com/geoip/geoip2/geolite2/

答案 1 :(得分:1)

我建议首先使用Maxmind GeoLite2数据库。它具有创意公共许可证,如果您需要更完整的IP覆盖,您可以在以后升级到商业GeoIP2数据库。此数据库中提供了国家和大陆代码。

我将介绍如何编译扩展,以及如何在PHP中使用mmdb数据库:

Intro to Maxmind GeoLite2 with Kohana PHP

enter image description here