LINUX.ORG.RU
ФорумAdmin

определение ip-адреса клиента


0

0

Помогите разобраться, почему шлюз в интернет не определяет ip адрес клиента. Стоит slackware 8, squid 2.4 stable 7 и apache из пакета дистрибутива. Все клиенты по http ходят через squid. Аpache настроил только на ssl-соединение (443 порт) с несколькими виртуальнами хостами. При доступе к одному из виртуальных хостов должен определяться ip адрес клиентской машины. Для этого написал cgi-скрипт:

if ($ENV{'HTTP_X_FORWARDED_FOR'}) # если соединение происходит через прокси { $ip=$ENV{'HTTP_X_FORWARDED_FOR'}; # запишем в переменную ip-адрес клиента } else # если же соединение происходит не через прокси { $ip=$ENV{'REMOTE_ADDR'}; # запишем в переменную ip-адрес хоста } . При подключении любого клиента в $ip пишет адрес прокси (и берет его, как я понял, только из remote_addr), а если оставить только строку $ip=$ENV{'HTTP_X_FORWARDED_FOR'}; то вообще ничего не пишет. Пробовал выводить все параметры $ENV с соответствующими им значениями, так этого http_x_forwarded_for вообще нету. Такой же скрипт положил на хостинг у провайдера, там определяет. И на какой-то сайт вышел, там тоже страница отобразила мой внутренний ip. В чем тут дело и в какой стороне искать?

anonymous

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.