Форум сетевых администраторов
Показаны 6 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- VBulletin 2.x.x (http://netadmin.ws/forum/forumdisplay.php?forumid=45)
-- Проблемы с определением IP (http://netadmin.ws/forum/showthread.php?threadid=1922)


Помещено sdexter 27-06-2002 в 08:15:

Проблемы с определением IP

IP болшенства пользователей определяется как IP сервера, на котором vB установлен.
Как бороться с этой проблемой?


Помещено DragOn 27-06-2002 в 14:18:

sdexter
у меня такая же проблема


Помещено miXei 27-06-2002 в 14:57:

Попробуйте переменную окружения REMOTE_ADDR (куда записывается IP адрес) заменить на переменную окружения HTTP_X_FORWARDED_FOR.

Я сам еще не пробовал. Но возможно это решение!

__________________
miXei.ru - Дискуссионный клуб


Помещено sdexter 27-06-2002 в 17:50:

Я даже сделал так:

в global.php поменял:

code:

$ipaddress=$REMOTE_ADDR;



на:


code:
if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"] != ""){
       $ipaddress = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
   }else{
       $ipaddress = $HTTP_SERVER_VARS["REMOTE_ADDR"];
   }



Но и это не помогло. Я узнал у своего хостера, они как то трафик распределяют... я не спец в этом, но получается так:
например, имеем http://site.server.com/forum.
Если зайти таким образом: http://site.server.com/forum , то вместо IP пользователя я буду видеть IP site.server.com, если пользователь заходит так- http://site.server.com:8080/forum , то я вижу IP пользователя, т.е. всё в порядке. По какому принципу сервер перекидывает на другой порт, я не знаю. Может есть идеи, что можно сделать, но чтобы не дёргать хостера. Может как то определять SERVER_PORT и если это не 8080, то редиректнуть?
Вобщем, помогите.
Заранее збазиба


Помещено Bratok 27-06-2002 в 20:52:

quote:
Первоначальное сообщение от sdexter
...... то я вижу IP пользователя, т.е. всё в порядке. По какому принципу сервер перекидывает на другой порт, я не знаю. Может есть идеи, что можно сделать, но чтобы не дёргать хостера. Может как то определять SERVER_PORT и если это не 8080, то редиректнуть?
Вобщем, помогите.
Заранее збазиба



А если это все реализовать так

code:
    if ($logip==1 or $logip==2) {
      $ipaddress=iif(getenv("REMOTE_ADDR")!="",getenv("REMOTE_ADDR"),$HTTP_HOST);
    } else {
      $ipaddress="";
    }
     if (getenv("HTTP_FORWARDED")!="") {
        $ipaddress=getenv("HTTP_FORWARDED");
      } elseif (getenv("HTTP_X_FORWARDED_FOR")!="") {
        $ipaddress=getenv("HTTP_X_FORWARDED_FOR");
      } elseif (getenv("HTTP_CLIENT_IP")!="") {
        $ipaddress=getenv("HTTP_CLIENT_IP");
      } else {
        $ipaddress="";
      } 

__________________
Tu ne cede malis, sed contra audehtior
Не покоряйся беде, но смело иди навстречу.


Помещено sdexter 28-06-2002 в 07:47:

quote:
Первоначальное сообщение от Bratok


А если это все реализовать так...



К сожалению не помогло


Формат времени GMT. Текущее время 18:57.
Показаны 6 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.