Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: определит страна, где находится ползовател

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dadli
Отправлено: 20 Октября, 2011 - 16:53:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011  
Откуда: тифилис


Помог: 5 раз(а)




приветствую
хачу сделат такое: определит страна ползователя, тоест если человек зашол на саите из росии, то написат
"ви сеичас в россию",
если человек зашол на саите из мексики, то соответсвено написат: "ви сеичас в мексике"... и так далее.
погуглил но не нашол ничего нужного, если знаите какоита полезную саит, где об етом написано, даите ссилка пожалуиста.
 
 Top
Avrelio
Отправлено: 20 Октября, 2011 - 17:05:39
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)

[+][+]


можна с помощью гуглмапс либо по ип определять страну

1. Узнаём IP-адрес посетителя:
IP хранится в суперглобальном массиве $_SERVER;
пример:
CODE (php):
скопировать код в буфер обмена
  1.  
  2. $ip =  $_SERVER['REMOTE_ADDR'];
  3.  
  4. //2. Пишем функцию whois:
  5.  
  6. function whois($ip) {
  7.   if ($ip!="") {
  8.     $sock = fsockopen ("whois.ripe.net",43,$errno,$errstr);
  9.     if ($sock) {
  10.        fputs ($sock, $ip."\r\n");
  11.       while (!feof($sock)) {
  12.         $str.=trim(fgets ($sock,128)." <br>");
  13.       }
  14.     }
  15.     else {
  16.           $str.="$errno($errstr)";
  17.       return;
  18.     }
  19.     fclose ($sock);
  20.   }
  21.   return $str;
  22.   }
  23.  

получаем whois-данные для нашего IP
пример:
CODE (php):
скопировать код в буфер обмена
  1.  
  2. $whois =  whois($_SERVER['REMOTE_ADDR']);
  3.  

3. Выдираем с помощью регулярных выражений данные о стране

Тут уже может быть куча способов, для примера вот этот:
CODE (php):
скопировать код в буфер обмена
  1.  
  2.  $need = "country:";
  3.  $pos = strpos($whois,$need);
  4.  $search = substr($whois,$pos,18);
  5.  $excount = explode(":", $search);
  6.  
  7.  $country = trim($excount[1]); //готово
  8.  
  9. "$country" // содержит значение страны IP-адреса.
  10.  

Значение в формате: RU, UA, US, TJ...

4. Что делать? Примеры

Запрет посетителей с USA:
CODE (php):
скопировать код в буфер обмена
  1.  
  2. if($country == "US") {
  3. echo "Your IP banned! He-he...";
  4. exit();
  5. }
  6.  


Вывод названий в другом формате (Россия, Украина, Узбекистан и т. д.):
 
 Top
dadli
Отправлено: 20 Октября, 2011 - 22:43:19
Post Id



Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011  
Откуда: тифилис


Помог: 5 раз(а)




Avrelio
спасибо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB