Что нового

Проверка proxy на флаг HTTP_X_FORWARDED_FOR

The Dream

Новичок
Сообщения
393
Репутация
3
Если честно, то название темы я придумать точнее не смог.

Пожалуйста, подскажите как сделать вот что. Сразу напишу, что это не имеет отношения прямого именно к "созданию сервера", но необходимо для реализации моей задумки. Мне требуется понять какие пакеты передаются от браузера к сайту через прокси, то есть сообщает ли браузер где-то/или создает пометку, что данные посылает через прокси.

Поэтому думаю создать простой http-сервер, и "поставить" на него страницу (любую).

Потом через браузер зайти на мой айпи-адресс.

Я при этом посмотрю что получил сервер и какие пакеты отправил IE (к примеру через IE Http Analyzer).

Что думаете? :scratch:
 

_dron_

Знающий
Сообщения
84
Репутация
8
Re: Создать примитивный сервер

Если ты сидишь за Nat транслятором (70% что да) то тебя из сети видно не будет!!!
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
Re: Создать примитивный сервер

Но я вроде не сижу за NAT - транслятором. С чего вы взяли? :smile:
 

_dron_

Знающий
Сообщения
84
Репутация
8
Re: Создать примитивный сервер

dream.reckless сказал(а):
Но я вроде не сижу за NAT - транслятором. С чего вы взяли? :smile:

Даже у сайтов есть Nat (У 60%) за которым они сидят а у обычных пользователей провайдер публичный Ip не даст (1 - дорого; 2 - у него же не один клиент)

В теле HTTP (в TCP-пакете ) запроса есть переменная REMOTE_ADDR в нее помещается IP-адрес удаленного клиента. Клиент может использовать прокси-сервер, тогда в эту переменную попадает не его IP-адрес, а адрес прокси-сервера. Если прокси-сервер прозрачный, в переменную HTTP_X_FORWARDED_FOR он помещает IP-адрес клиента, которым он пользуется. Поэтому если HTTP_X_FORWARDED_FOR ничего не содержит, либо клиент использует непрозрачный прокси-сервер (который не отправляет эту информацию), либо вообще не использует прокси-сервер, что более вероятно. (они спокойно достаются через PHP где их берет APACHE я не знаю)
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
Re: Создать примитивный сервер

_dron_, скажите то есть браузер IE работая с proxy - не ставит никакие флаги что используется прокси?

И как понять, сижу ли я за NAT? Если я сижу за NAT - то к примеру я не смогу создать ftp-сервер?
 

_dron_

Знающий
Сообщения
84
Репутация
8
Re: Создать примитивный сервер

браузер не ставит ни каких флагов а сам прокси должен (но не обязан)

Код для проверки сидите ли вы за Nat :smile:
Код:
#include <Inet.au3>
#include <MsgBoxConstants.au3>

Local $isPublicIP = (_GetIP() = @IPAddress1)

MsgBox($MB_SYSTEMMODAL, "", "Я сижу за Nat-транслятором? Ответ: " & ($isPublicIP ? " Нет" : " Да") )


Все Nat'ы пропускаю данные снаружи сети во внутрь только если клиент начал первым передачу (из локальной сети наружу). Если клиент не делал запросы то все внешние запросы будут игнорироваться так как Nat не знает к какому клиенту идет запрос (За одним Nat может сидеть очень много клиентов а некоторые тоже являются Nat'оми и за ними тоже несколько клиентов)

А если вам нужно открыть xxx-сервер то это нужно обратится к провайдеру.

зы код был с ошибкой
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
Re: Создать примитивный сервер

_dron_

Если простыми словами, то "за NAT" - это если у меня только локальный ip, верно? А внешний - один на всех? Я правильно понимаю? Вроде бы верно я понял, судя по "Если клиент не делал запросы то все внешние запросы будут игнорироваться так как Nat не знает к какому клиенту идет запрос".

В таком случая я не за NAT-ом, думал эти времена уже прошли. И кстати "не за NAT" на двух моб. провайдерах и двух обычных.

"А если вам нужно открыть xxx-сервер то это нужно обратится к провайдеру."

Это как понимать? Открыть ftp/http-сервер я могу без разрешения провайдера, установив ПО. Сервер будет виден в зависимости от сети - внутри или и внешне в том числе.
 

_dron_

Знающий
Сообщения
84
Репутация
8
Re: Создать примитивный сервер

http://ru.wikipedia.org/wiki/NAT
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
Re: Создать примитивный сервер

То есть если я за NAT - фтп-сервер я не смогу создать?
 

_dron_

Знающий
Сообщения
84
Репутация
8
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
Re: Создать примитивный сервер

Сейчас фтп-сервер установить не могу, может вы и правы - просто раньше, года два назад, я мог создать фтп-сервер на любом компьютере, у которого есть реальный ip-адрес. Может я что-то путаю.

Где переменные HTTP_X_FORWARDED_FOR можно посмотреть?

Использую для анализа пакетов, программу HTTP Analyzer V7, в ней вроде не увидел, может иначе именуются?

_dron_ [?]
браузер не ставит ни каких флагов

Вы в этом уверены?

Подскажите пожалуйста, как лучше узнать - ставит ли флаг прокси или нет, я имею ввиду переменную HTTP_X_FORWARDED_FOR
 

_dron_

Знающий
Сообщения
84
Репутация
8
Re: Создать примитивный сервер

http://www.networkcenter.info/inform/clientinfo

http://www.networkcenter.info/inform/proxydetect
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
Re: Создать примитивный сервер

_dron_ сказал(а):
http://www.networkcenter.info/inform/clientinfo

http://www.networkcenter.info/inform/proxydetect

Спасибо большое, очень-очень помогли!
 
Верх