GeoIP 重定向 欧盟 美国 英国

Posted

技术标签:

【中文标题】GeoIP 重定向 欧盟 美国 英国【英文标题】:GeoIP Redirect EU USA UK 【发布时间】:2014-06-21 23:59:09 【问题描述】:

我想知道您是否可以给我一个有效的代码,这样当有人从英国加载网站时,它会将用户重定向到 /UK/,然后如果他们从美国加载它,它会转到 /US/,如果他们'来自除英国以外的欧盟任何地方到 /EU/

我试过这段代码,它只是说 123。

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>removed</title>

<script type='text/javascript'>//<![CDATA[ 
window.onload=function()

    if(navigator.geolocation)
    
    navigator.geolocation.getCurrentPosition(showPosition,showError);
    
    else
    
    alert("Geolocation is not supported by this browser.");
    

    function showError(error)
      
      switch(error.code)
        
        case error.PERMISSION_DENIED:
          alert("User denied the request for Geolocation.");
          break;
        case error.POSITION_UNAVAILABLE:
          alert("Location information is unavailable.");
          break;
        case error.TIMEOUT:
          alert("The request to get user location timed out.");
          break;
        case error.UNKNOWN_ERROR:
          alert("An unknown error occurred.");
          break;
        
      

 function showPosition(pos)
  

   if (pos.coords.longitude >= 45.775534 && pos.coords.longitude <= 45.775562 && pos.coords.latitude <= 15.994809 && pos.coords.latitude >= 15.994792)
        
            alert("987");
        //window.location = 'USD/';
        
        else
            alert("123");
           // window.location = 'GBP/';
        
  
//]]>  

</script>
</head>
<body>
</body>
</html>

【问题讨论】:

【参考方案1】:

通常这样的重定向是在服务器端通过查询地理位置数据库来执行的。如果用户允许页面查询位置,JavaScript 方法可能适用于现代浏览器。

无论如何,请仔细查看纬度和经度的约束条件。如我所见,它应该在 lon 45.775534-45.775562 lat 15.994809-15.994792 的非常小的盒子里。这是克罗地亚萨格勒布的一个小广场。因此,除非您的设备使用非常精确的地理位置并且您实际上在这个位置,否则您几乎不可能有 987 弹出窗口。如果你想检查用户是否在美国,你应该使用更复杂的匹配(考虑到阿拉斯加和夏威夷)。

【讨论】:

以上是关于GeoIP 重定向 欧盟 美国 英国的主要内容,如果未能解决你的问题,请参考以下文章

geoip 将国家/地区重定向到 403

我的 IP 地址的 Maxmind GeoIP 重定向异常

根据区域进行 Api 重定向

“此网页有一个重定向循环”(使用 GeoIP 重定向网站)

GeoIP 重定向循环 - 如何解决?

使用GeoIP和.htaccess重定向流量