Народ, нужна помощь. Сталкнулся с такой проблемой: Нужно послать одному сайту запрос через HTTP-proxy. Сложность заключается в том, что у этого сайта HOST не соответствует IP, поэтому подключаться нужно по IP а в поле host ставить нужный хост. т.е. обычный запрос без прокси осуществлялся бы примерно так: 1) подключение к адресу 111.111.111.111 2) посылка запроса: GET http://hostname.ru/cgi.exe?param HTTP/1.0 Host: hostname.ru Вот незнаю как написать запрос, чтобы осуществить такое через прокси. Т.К из за того что hostname.ru не соответсвует IP, то запросы такого вида не катят: 1)по неизвестным причинам не работает :\ GET http://hostname.ru/cgi.exe?param HTTP/1.1 Host: 111.111.111.111 Proxy-Connection: Keep-Alive 2) сервер подключится к неправильному IP, который будет соответсвовать hostname.ru GET http://hostname.ru/cgi.exe?param HTTP/1.1 Host: hostname.ru Proxy-Connection: Keep-Alive 3) не передаст серверу hostname.ru в http заголовке GET http://111.111.111.111/cgi.exe?param HTTP/1.1 Host: 111.111.111.111 Proxy-Connection: Keep-Alive 4) сервер подключится к неправильному IP, который будет соответсвовать hostname.ru GET http://111.111.111.111/cgi.exe?param HTTP/1.1 Host: hostname.ru Proxy-Connection: Keep-Alive Как вы уже поняли для решения задачи, нужно просто какимто образом заставить прокси отослать запрос вида: GET http://hostname.ru/cgi.exe?param HTTP/1.0 Host: hostname.ru на сервекр с адресом 111.111.111.111
Немного не понял: 111,111,111,111 == прокся или ip сервера с фейковым сайтом? Добавил: Туплю=( А зачем тебе именно HTTP-Proxy, тут имхо через сокс удобнее будет
111.111.111.111 - это адрес самого сервера, где находится сайт. который принимает запросы типа: GET http://hostname.ru/cgi.exe?param HTTP/1.0 Host: hostname.ru При том, что запросы вида: GET /cgi.exe?param HTTP/1.0 Host: hostname.ru Не катят. И по hostname.ru - нельзя отпределить ip сервера с сайтом. т.е. hostname.ru - удален из базы DNS сервера. Но он прописан как виртуальных сервер на сайте. Именно по этому к серваку с сайтом нужно подрубаться через IP, но поле host должно быть hostname.ru и зам запрос GET http://nostname.ru/cgi.exe?param HTTP/1.0 Просто может можно какнить добавить свои поля, которые будет прокси передавать серверу.
при работе с проксей сам header не меняеться! он остаеться: А вот в качестве адресса сервака, и порта для подключения и спользуеться адрес и порт прокси
Делаю как надо. НО прокси выдает: HOST - nostname.ru; PORT - 80<br>Connection timed out hostname.ru - выдуманное доменно имя. на деле использую нужное.
Просто тут дело скорей вот в чем: Прокси сервер подключаюся к WEB-сервуру и конвертирует запрос: GET http://111.111.111.111/cgi.exe?param HTTP/1.1 Host: hostname.ru Proxy-Connection: Keep-Alive в такой вот вид: GET /cgi.exe?param HTTP/1.0 или HTTP/1.1 Host: hostname.ru А на деле нужен запрос GET http://hostname.ru/cgi.exe?param HTTP/1.1 Host: hostname.ru т.е. обрезарается часть http://hostname.ru скорее всего поэтому и глюки :\
в запросе через http proxy нужно и можно указывать только протокол, хост и его версию GET http://www.xek.org/ HTTP/1.0 и никакой host не нужен