是否可以从访问网站的用户那里获取大陆? 我知道我可以像这样获得浏览器的语言:::
<?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;
}
?>
我也知道有php
函数调用 - &gt; geoip_continent_code_by_name
如果传递带有主机名的字符串,它将返回我:
代码大陆名称
AF Africa
AN Antarctica
AS Asia
EU Europe
NA North america
OC Oceania
SA South america
但是这只返回主机名,所以有没有办法获得相同的结果,但对于访问该网站的用户?或甚至可以做到?
答案 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