Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


igorfelix

Recommended Posts

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

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

 

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

 

Надіслати
Поділитися на інших сайтах


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

<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; ?>  
 
вроде выводит. но с мобильных телефонов отображает вообще не верно 


Надіслати
Поділитися на інших сайтах


  • 9 months later...

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

 

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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.