Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2013, 13:08   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию Использование прокси-сервера.

Доброго времени суток!

Крик души:
Покажите пример правильного использования SOCKS прокси-сервера через компоненты Indy, Synapse, ICS. Кто на чем горазд.

Заказчик говорит, что через прокси не работает у него, ломится на прямую. Я уже 2 неделю голову ломаю.

Помогите кто.
Человек_Борща вне форума Ответить с цитированием
Старый 21.03.2013, 20:04   #2
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию

как вариант нужны анонимные хттп прокси, тогда не пропалит что юзается проксик.
может это поможет...
http://avtuh.ru/2010/08/06/delphi-in...p-i-socks.html
вот у нас на форуме есть примерчик
http://programmersforum.ru/showthread.php?p=873741
megostudent вне форума Ответить с цитированием
Старый 21.03.2013, 20:24   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Не пишу ничего стремного. Просто ПО ломится не через прокси а прямо к цели.
Человек_Борща вне форума Ответить с цитированием
Старый 21.03.2013, 20:27   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вроде в Инди 10 есть возможность прокси указать, но у меня тоже не получалось подключится. Видимо какие-то особенности в индейцах всетки существуют.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.03.2013, 22:31   #5
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Тут нужно ручками поработать, делать своего HTTP клиента и в нем реализовывать передачу через прокси. Я тоже сталкивался с этой проблеммой но решил ее написав именно такого клиента, он у меня работает с WinSock.

Последний раз редактировалось Aliens_wolfs; 23.03.2013 в 22:37.
Aliens_wolfs вне форума Ответить с цитированием
Старый 24.03.2013, 15:32   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Использовать TidHTTPServer? Какие приходящие данные читать/искать?
Как именно определил проблему?

может имеет смысл обычный веб-сервер?
Можно приспособить маршрутизатор под это дело? Через него я подключен к интернету(Я => маршрутизатор => Кабель провайдера).

Последний раз редактировалось Человек_Борща; 24.03.2013 в 15:34.
Человек_Борща вне форума Ответить с цитированием
Старый 24.03.2013, 16:09   #7
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Снифом определял, пакеты тоже напрямую шли.

Цитата:
Заказчик говорит, что через прокси не работает у него
А что за программа у него, написанная в Delphi и какой сетевой компонент используется в ней?
Или же вы используете для любой программы ваш прокси. Хотелось бы по точнее узнать как должно работать. Напишите что именно вы хотите сделать.

Последний раз редактировалось Aliens_wolfs; 24.03.2013 в 16:15.
Aliens_wolfs вне форума Ответить с цитированием
Старый 24.03.2013, 17:17   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Напишите что именно вы хотите сделать.
Хочу чтобы прокси работали в delphi.
Цитата:
и какой сетевой компонент используется в ней?
Испытания проводились на всех из 1 поста.

Берутся прокси с HideMe.ru, не бесплатные даже. Так они работают, а из Delphi -нет. Заказчик пишет что программа стучится на прямую, а не через прокси-сервер(адрес назначения отличается от IP текущего ипользуемого прокси).


Дело не столько в битых прокси, сколько в примерах правильного их подключения к программе. Буду рад примерам.

На синапсах пробовал:
через THTTPSend.Sock.Socks* - в итоге - нифига. На деле прокся живая, а через ПО - мертвая(ответ 500).
В indy тоже самое.
Почему это - я хз.
Человек_Борща вне форума Ответить с цитированием
Старый 24.03.2013, 20:51   #9
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Вот такой код использовал в одном проекте. Indy из последней версии Delphi.
Код:
unit HTTPCreate;

interface

uses
  IdSocks, IdSSLOpenSSL, IdHTTP, IdCompressorZLib;

  function CreateHttp: TIdHTTP;

implementation

function CreateHttp: TIdHTTP;
var
  Socks: TIdSocksInfo;
  SSL: TIdSSLIOHandlerSocketOpenSSL;
  HTTP: TIdHTTP;
begin
  HTTP := TIdHTTP.Create;
  HTTP.HandleRedirects := True;
  HTTP.Compressor := TIdCompressorZLib.Create;
  HTTP.Request.UserAgent := 'Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.13';

  Socks := TIdSocksInfo.Create;
  Socks.Version := svSocks5;
  Socks.Host := '127.0.0.1';
  Socks.Port := 9050;
  Socks.Authentication := saNoAuthentication;
  Socks.Enabled := True;

  SSL := TIdSSLIOHandlerSocketOpenSSL.Create;
  SSL.TransparentProxy := Socks;

  HTTP.IOHandler := SSL;

  Result := HTTP;
end;

end.
kangreon вне форума Ответить с цитированием
Старый 24.03.2013, 21:07   #10
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Я думаю что нужно правильно строить HTTP заголовки для отправки. И код 500 я так думаю не прокси присылает а ресурс который запросили через прокси, прокси вам просто через себя пропускает, то что вы отправляете и то как ответил ресурс. Попробуйте настройте в браузере проркси сервер и посмотрите через снифер как формируется заголовок, в Indy по умолчанию он вообще урезан, там вообще нету Connection: а это тоже нужный параметр в отправке HTTP заголовка, возможно еще чего то нехватает поэтому
код 500 Internal Server Error — любая внутренняя ошибка сервера. Возможно ресурс не все данные в заголовке принял.
И еще попробуйте без прокси опросить ресурс может он вам и пришлет эту ошибку. А Indy я думаю любой версии будет работать, но лично я сам строил и отправлял заголовки через WinSock, у меня и задача потом появилась без сетевых компонентов сделать, для веса что бы меньше был проект. Но эту особенность в Indy я заметил что не всегда работает прокси в нем, я думаю по той причине что я написал выше.

Последний раз редактировалось Aliens_wolfs; 24.03.2013 в 21:40.
Aliens_wolfs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
настройки прокси сервера Snekich Microsoft Office Excel 2 21.02.2012 12:42
Установка прокси сервера на Debian Altera Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 4 09.02.2011 03:00
Автоматическое изменение прокси-сервера у всех браузеров Arnezami Общие вопросы .NET 6 20.04.2010 01:05
Какими способами можно реализовать кэширование для прокси - сервера? Slavka8800 Работа с сетью в Delphi 0 02.06.2009 22:08