Спустя 2 дня, 13 минут, 16 секунд (4.05.2006 - 22:35) Timok написал(а):
полазил по инету, нарыл такую функцию:
работает она отлично, никаких претензий, еще бы догнать что означают все эти команды. Я так понял в $_SERVER['REMOTE_ADDR'] обычно хранится IP посетителя. А что означают остальные строчки?
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;
}
$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, но вообщем-то не обязан этого делать. Собственно, анонимные так не делают.
Прокси-сервер может указывать IP пользователя в заголовке X_FORWARDED_FOR, но вообщем-то не обязан этого делать. Собственно, анонимные так не делают.