Перейти к содержанию
igorfelix

Помощь по определению города по IP

Рекомендуемые сообщения

Добрый день. Нужна помочь или подсказка как правильно реализовать определение города посетителя на сайте. есть куча статей и методов. в данным момент использую 

 <?php 
function geo_info($ip)
 {
    $xml = "<ipquery><fields><city/></fields><ip-list>"
         . "<ip>".$ip."</ip></ip-list></ipquery>";
    $ch = curl_init("http://194.85.91.253:8090/geo/geo.html");
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
    $result = curl_exec($ch);
    if(curl_errno($ch) != 0)
      die("curl_errno(".curl_errno($ch)."), curl_error(".curl_error($ch).")");
    curl_close($ch);
    if (strpos($result, '<message>Not found</message>') !== false)
      return false;
    preg_match("/<city>(.*)<\/city>/", $result, $city);
    return $city[1];
  }
$city = geo_info($_SERVER['REMOTE_ADDR']); // Вернет город посетителя
 

 $city=iconv("windows-1251","utf-8",$city);
 
 

 

 ?>

Понимаю что это никак не относится к опенкарту. но все же.

какие проблемы бывают:

с мобильньков порой операторы назначают ip других городов. в итоге человек находится на камчатке, а ему выдает что он во Владивостоке

с Казахстаном вообще беда, города никак не определяет. 

нужна какая то база, что бы ее подключить к опенкарту. что бы посетителю выдавало верный город. хотя бы в 95% случаев

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну какая ж это проблема? Вы хотели определят город по IP - вы определяете. У этого метода есть свои плюсы и минусы. В качестве минусов, например, вы получаете погрешность.

Для большей точности можете попытаться использовать что-то вроде этого. Но тут опять минусы и плюсы есть, как и везде.

Или предлагайте пользователям исправить город на правильный и обрабатывайте результат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у меня есть центральный сайт. попадая на него, сайт перебрасывает редиректом на другой поддомен в зависимости от города.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошо, но от этого достоверный способ определения локации пользователя не появится. 

Самое точное, что вы можете получить, это данные с gps телефона, если пользователь разрешит. Дальше по убыванию в точности.

Т.е. мой ответ вида "комбинируйте с другими методами получения данных о локации, а именно HTML5 и ответ самого пользователя" от наличия поддоменов у вас никак не преобразится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а вот координаты (долгота и широта) ссылку вашу открыл, там пример. вышли цифры.. но а какой город - это еще допиливать надо (

не нравится что браузер спрашивает Разрешить. многие нажмут "Нет"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А никто не говорил что будет легко, я сказал везде свои плюсы и минусы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.