Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определить является ли адрес прокси сервером, socks4, socks5 
:(
    Опции темы
Gnusss
  Дата 30.10.2007, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 19.1.2005

Репутация: нет
Всего: нет



Привет всем.

Столкнулся с такой проблемой, есть некий адрес и порт (например 192.168.3.5:3125) нужно определить является ли этот адрес socks прокси сервером. 
Раньше с прокси вообще не работал, поэтому нет никаких предположений как это вообще можно реализовать, поиск, к сожалению тоже никаких результатов не дал.

Заранее благодарю за ответ.
PM MAIL   Вверх
dmitry501
Дата 8.11.2007, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.10.2004

Репутация: нет
Всего: нет



Соединяешься с сервером и шлешь ему сообщение из протокола начала соединения Socks
Например 05 01 01 
И ждешь ответ.
Прокси посылает ответ, если все корректно 05 00
Вот пример на спецязыке WP
Код

 p_ip:=inet_addr('10.0.0.13'); // proxy IP
 p_port:=htons(1080); // proxy Port
 pck:=HStr('05 01 00'); // пакет авторизации socks5
 Server:=gWSA.TCPsocket(block); // создаём блокирующий сокет
 i:= gWSA.connect(Server,p_ip,p_port); // открываем соединение с proxy
 if i=-1 then exit;
 Writelog('proxy connect');
 gWSA.send(Server,pck); // отправляем пакет
  buf:= FStr(256,#0);
  i:= gWSA.recv(Server, buf);
  if i<=0 then exit;
  if buf[1] <> #5 then exit;
  if buf[2] <> #0 then exit;
  pck:=HStr('05 01 00 01')+IntToBin(ip,4)+IntToBin(htons(port),2); // пакет socks5 запроса
  gWSA.send(Server,pck); // отправляем пакет
  i:= gWSA.recv(Server, buf);
  if i<=0 then exit;
  if buf[1] <> #5 then exit;
  if buf[2] <> #0 then exit;
  ip := GInt(buf,5,4);
  port := htons(GInt(buf,9,2)); // байты порта 'перевернуты'

В итоге получим IP и порт , через который и будем общатся с целевым сервером
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.