Сейчас покажу, как нужно использовать различные типы прокси в запросах на Indy. Прокси будем брать из Edit1 и делить на адрес и порт. Самое простое это использовать HTTP-прокси:
Для использования SOCKS4 и SOCKS5 кроме компонента IdHTTP1 требуются компонент IdSocksInfo (вкладка Indy Misc) и компонент IdSSLIOHandlerSocketOpenSSL (вкладка Indy I/O Handlers). В IdSocksInfo указываем тип прокси (svSocks4 или svSocks5), адрес и порт, а также выставляем свойство Authentication в saNoAuthentication:
После этого можно делать запрос. Запрос я делал на страницу moi-ip.ru, где на странице отображается IP запрашиваемого. И парсим из ответа IP адрес, который выводим в Memo. Если всё верно и прокси хороший, то используемый прокси и выведенный в Memo должны совпасть.
В качестве бонуса в программе показано, как можно показывать прогресс получения ответа сервера. Он отображается в компоненте Gauge (можно также использовать ProgressBar). В самом начале запроса (IdHTTP1WorkBegin) из заголовков ответа сервера из поля Content-Length берем длину получаемого ответа (обращаю внимание, что такого заголовка может не быть, а значит не всегда можно знать, какой длины будет ответ). И свойству MaxValue присваиваем это значение:
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.