[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: IP через PHP
Timok
Интересует такой вопрос: как определять ip каждого посетителя? И как можно узнать о том кто в данный момент находится на сайте? Оссобенно волнует второй вопрос :/ , т.к. я вообще не представляю как это возможно, но очень часто вижу такую фишку (например на форумах). Ведь клиент общается с сервером через запросы, но если пользователь никаких запрсов не посылает, как узнать - открыта ли у него страничка или нет?



Спустя 2 дня, 13 минут, 16 секунд (4.05.2006 - 22:35) Timok написал(а):
полазил по инету, нарыл такую функцию:
CODE
function get_user_ip() {
   $strRemoteIP = $_SERVER['REMOTE_ADDR'];
   if (!$strRemoteIP) {
       $strRemoteIP = urldecode(getenv('HTTP_CLIENTIP'));
   }
   if (getenv('HTTP_X_FORWARDED_FOR')) {
       $strIP = getenv('HTTP_X_FORWARDED_FOR');
   }
   elseif (getenv('HTTP_X_FORWARDED')) {
       $strIP = getenv('HTTP_X_FORWARDED');
   }
   elseif (getenv('HTTP_FORWARDED_FOR')) {
       $strIP = getenv('HTTP_FORWARDED_FOR');
   }
   elseif (getenv('HTTP_FORWARDED')) {
       $strIP = getenv('HTTP_FORWARDED');
   } else {
       $strIP = $_SERVER['REMOTE_ADDR'];
   }
   if ($strRemoteIP != $strIP) {
       $strIP = $strRemoteIP . ', ' . $strIP;
   }
   return $strIP;
}

работает она отлично, никаких претензий, еще бы догнать что означают все эти команды. Я так понял в $_SERVER['REMOTE_ADDR'] обычно хранится IP посетителя. А что означают остальные строчки?

Спустя 7 дней, 15 часов, 36 минут, 23 секунды (12.05.2006 - 14:11) vasa_c написал(а):
REMOTE_ADDR содержит IP конечного пользователя, только когда он непосредственно соединяется с сервером или через прозрачный прокси-сервер. Если через непрозрачный, то REMOTE_ADDR будет содержать IP собственно прокси-сервера.
Прокси-сервер может указывать IP пользователя в заголовке X_FORWARDED_FOR, но вообщем-то не обязан этого делать. Собственно, анонимные так не делают.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.