Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как узнать IP?
Форумы портала PHP.SU » » HTTP и PHP » Как узнать IP?

Страниц (1): [1]
 

1. maxfd - 13 Марта, 2007 - 19:58:16 - перейти к сообщению
Подскажите пожалуйста как узнать IP пользователя и IP прокси, если клиент подключен через прокси?
2. evgenijj - 13 Марта, 2007 - 20:12:20 - перейти к сообщению
maxfd пишет:
Подскажите пожалуйста как узнать IP пользователя и IP прокси, если клиент подключен через прокси?

Цитата:

В элемент $_SERVER['REMOTE_ADDR'] помещается IP-адрес клиента. При тестировании на локальной машине — этот адрес будет равен 127.0.0.1. Однако при тестировании в сети переменная вернёт IP-адрес клиента или последнего прокси-сервера через который клиент попал на сервер. Если клиент использует прокси-сервер узнать его IP-адрес можно при помощи переменной окружения HTTP_X_FORWARDED_FOR, значение которой можно получить при помощи функции getenv().

http://www.php.su/articles/?cat=...ars&page=015
3. maxfd - 14 Марта, 2007 - 12:59:52 - перейти к сообщению
evgenijj пишет:
maxfd пишет:
Подскажите пожалуйста как узнать IP пользователя и IP прокси, если клиент подключен через прокси?

Цитата:

В элемент $_SERVER['REMOTE_ADDR'] помещается IP-адрес клиента. При тестировании на локальной машине — этот адрес будет равен 127.0.0.1. Однако при тестировании в сети переменная вернёт IP-адрес клиента или последнего прокси-сервера через который клиент попал на сервер. Если клиент использует прокси-сервер узнать его IP-адрес можно при помощи переменной окружения HTTP_X_FORWARDED_FOR, значение которой можно получить при помощи функции getenv().

http://www.php.su/articles/?cat=vars&page=015




Вот как я это понял: если переменная HTTP_X_FORWARDED_FOR пустая (или ее нету), то REMOTE_ADDR-это IP клиента. А если переменная HTTP_X_FORWARDED_FOR не пустая, то она содержит IP-клиента, а REMOTE_ADDR- IP прокси.

PHP:
скопировать код в буфер обмена
  1. function findUserIP(){
  2.         //получаем HTTP_X_FORWARDED_FOR
  3.         $forward_ip = @getenv('HTTP_X_FORWARDED_FOR');
  4.         if(empty($forward_ip)){
  5.                 $user_ip = @getenv('REMOTE_ADDR');
  6.                 $proxy_ip = '';
  7.         }
  8.         else{
  9.                 $user_ip = $forward_ip;
  10.                 $proxy_ip = @getenv('REMOTE_ADDR');
  11.         }
  12.    }
4. Viper - 15 Марта, 2007 - 15:18:52 - перейти к сообщению
а если например заголовок изменен и вместо одного IP в 'HTTP_X_FORWARDED_FOR' 2 или более IP ?? как быть тогда ?
5. kuzya - 18 Марта, 2007 - 20:08:43 - перейти к сообщению
Попробуй пиши их все. Хотя, смотря для какой цели тебе это нужно.
1. Если прокс анонимный то ничего ты не узнаеш.
2. X_FORWARDED_FOR можно сформировать как угодно - чем прокси и занимаются.
6. Viper - 19 Марта, 2007 - 11:28:49 - перейти к сообщению
kuzya пишет:
Попробуй пиши их все. Хотя, смотря для какой цели тебе это нужно.
1. Если прокс анонимный то ничего ты не узнаеш.
2. X_FORWARDED_FOR можно сформировать как угодно - чем прокси и занимаются.


это то я понял... просто если я изменяю X_FORWARDED_FOR то у меня при определении выводиться и мой IP и тот что я ввел при изменении... вот и спросил как можно их отделить(если можно) и узнать что 1 это именно то что мне нужно, а не 2... Ведь IP заведомо не известен...
7. kuzya - 19 Марта, 2007 - 13:28:48 - перейти к сообщению
Попробуй найти какуюнить зависимость, проверь на 2-3 различных вариациях и посмотри, мб твой ип будет стоять на 1-м или на 2-м месте постоянно.

 

Powered by ExBB FM 1.0 RC1