слишком много ip определяется как unknown

Vlas

Guest
слишком много ip определяется как unknown

Здравствуйте, товарищи.....
тут есть такая функция интересная:
PHP:
function ip() 
{ 
if (getenv(HTTP_CLIENT_IP)) 
    { 
    $ip = getenv(HTTP_CLIENT_IP); 
    } 
elseif(getenv(HTTP_X_FORWARDED_FOR)) 
    { 
    $ip = getenv(HTTP_X_FORWARDED_FOR); 
    } 
else 
    { 
    $ip = getenv(REMOTE_ADDR); 
    } 
return $ip;
вот только она сильно много айпи определяет как unknown...
мой айпи в частности тоже....
что можно сделать чтобы этих unknown было меньше....
 

tric

Guest
Исполльзовать для определения IP $_SERVER['REMOTE_ADDR'];

-~{}~ 19.02.04 18:21:

Сорри прогнал

-~{}~ 19.02.04 18:21:

Сорри прогнал
 

Линк

Guest
кривая ф-яя

PHP:
if ($_SERVER["HTTP_X_FORWARDED_FOR"]) {
  if ($_SERVER["HTTP_CLIENT_IP"]) {
   $proxy = $_SERVER["HTTP_CLIENT_IP"];
 } else {
   $proxy = $_SERVER["REMOTE_ADDR"];
 }
 $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else {
 if ($_SERVER["HTTP_CLIENT_IP"]) {
   $ip = $_SERVER["HTTP_CLIENT_IP"];
 } else {
   $ip = $_SERVER["REMOTE_ADDR"];
 }
}
echo "Your IP $ip
\n";
if (isset($proxy)) {
 echo "Your proxy IP is $proxy
\n";
}
лучше так

-~{}~ 19.02.04 18:31:

ЗЫ: иногда бывает полезно знать, как работает ф-яя, а не просто ее использовать.
Посвязается Vlas'у.
 

Vlas

Guest
спасибо Линку..... все айпи определяются....

кто знает как так получается что у одного посетителя два айпи пишет?
 

borz

Guest
кто знает как так получается что у одного посетителя два айпи пишет?
Я этого тоже не понимаю. HTTP_X_FORWARDED_FOR достаточно часто содержит два IP, разделенных запятой. Кто-нибудь знает, где можно найти ТОЧНОЕ ОПИСАНИЕ "что какие IP обозначают?"
 

ForJest

- свежая кровь
HTTP_X_FORWARDED_FOR это один из заголовков, посылаемых HTTP клиентом. Как и все заголовки это может быть подделано.
Актуальной и достоверной информацией можно разжиться только из REMOTE_ADDR.
Вот если REMOTE_ADDR достоверно соответствует проксе, и прокся эта "честная" - тогда можно доверять и HTTP_X_FORWARDED_FOR.
В алгоритме, приведённом Линком, если я правильно понял приоритет отдаётся HTTP_X_FORWARDED_FOR. Поэтому, если сделать допустим бан на данное IP - я смогу подделав значение заголовка спокойно продолжить своё дело.
 

borz

Guest
HTTP_X_FORWARDED_FOR это один из заголовков, посылаемых HTTP клиентом
Восхитительно! HTTP_X_FORWARDED_FOR и HTTP_CLIENT_IP действительно запросто подделываются! :D Делать бан по ним явно нельзя :( Спасибо за ценную информацию! :rolleyes:
 
Сверху