Перенаправление GeoIP ЕС, США, Великобритания

#javascript #jquery #html #css #geoip

#javascript #jquery #HTML #css #geoip

Вопрос:

Мне было интересно, не могли бы вы дать мне код, который работает так, что когда кто-то загружает сайт из Соединенного Королевства, он перенаправляет пользователя в / 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 amp;amp; pos.coords.longitude <= 45.775562 amp;amp; pos.coords.latitude <= 15.994809 amp;amp; 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 latat 15.994809-15.994792. Это небольшая площадь в Загребе, Хорватия. Поэтому, если ваше устройство не использует очень точную геолокацию, и вы действительно находитесь в этом месте, маловероятно, что у вас когда-нибудь появится всплывающее окно 987. Если вы хотите проверить, находится ли пользователь в США, вам следует использовать гораздо более сложное сопоставление (с учетом Аляски и Гавайев).