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

Как определить страну посетителя сайта

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

Добрый день, пытаюсь в шапку сайта вывести страну посетителя.

Если есть возможность то без подключение сторонних баз.

 

Вывести хотя бы что то , что бы это внести в переменную и поставить условие. 

 

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


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

за следующую тему в общих вопросах RO неделя+.

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


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

Ничего не понял ? вы о чем ?)

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


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

В хидер  скрипт

<script src="http://api-maps.yandex.ru/2.0-stable/?load=package.standard〈=ru-RU" type="text/javascript"></script>

и

<script type="text/javascript">
 window.onload = function () {
 jQuery("#geocountry").text(ymaps.geolocation.country);
 jQuery("#geocity").text(ymaps.geolocation.city);
 }
</script>

сам блок вывода Страна-Город

 

<span id="geocountry"></span>
<span id="geocity"></span>

куда уже нужно.....

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


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

Спасибо, Том, попробую.
но хотел через php 

 <?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);

 ?>

Нужно для редиректа

<?php if ($city == 'Киров') { ?>
<?php header('Location: http://киров.сайт.ру');?>
<?php } ?> 

этот кусок выводит город посетителя. 
но мне нужна страна.. уже весь интернет перелапатил

 

пробую это 

$country = geoip_country_name_by_name($_SERVER['REMOTE_ADDR']);

 
<?php echo $country; ?>  
 
вроде выводит. но с мобильных телефонов отображает вообще не верно 


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


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

Если по простому то можно через онлайн сервисы:

 

http://ipgeobase.ru:7020/geo?ip=89.163.220.14

 

http://www.geoplugin.net/json.gp?ip=89.163.220.14

http://api.sypexgeo.net/json/89.163.220.14

 

Например:

$geo = file_get_contents('http://api.sypexgeo.net/json/89.163.220.14');
$geo = json_decode($geo);
var_dump($geo);

Но лучше использовать GeoIP - http://php.net/manual/ru/book.geoip.php

 

Подробнее обо всем этом можно почитать тут: http://atoumus.github.io/PHP/php-detect-country-by-ip.html

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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