HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Проверка проксика
  #1  
Старый 22.12.2005, 19:31
FHT
Постоянный
Регистрация: 21.09.2005
Сообщений: 525
С нами: 10860866

Репутация: 547


По умолчанию Проверка проксика

Господа! Меня волнует вопрос какой запрос нужно послать прокси серверу, что бы он индетифицировал себя?
ЗЫ: Собираюсь писать прокси чекер "для_себя", просто не могу разобраться с запросом.
 
Ответить с цитированием

  #2  
Старый 24.12.2005, 21:05
dinar_007
Флудер
Регистрация: 18.01.2005
Сообщений: 2,298
С нами: 11215046

Репутация: 1844


По умолчанию

Ммм... не совсем ясна проблема... распиши пожалуйста подробнее, что именно тебе нужно ))) Всмысле, чтобы онидентифицировал себя?
 
Ответить с цитированием

  #3  
Старый 11.01.2006, 08:59
DeathLess
Новичок
Регистрация: 21.10.2005
Сообщений: 11
С нами: 10818160

Репутация: 3
По умолчанию

просто попытайся подключиться к чему-нибудь через прокси-сервер
 
Ответить с цитированием

  #4  
Старый 21.01.2006, 23:12
Morph
Постоянный
Регистрация: 13.08.2004
Сообщений: 957
С нами: 11442626

Репутация: 429


По умолчанию

Если требуетсья установить прокся это или нет хз.
Если вообще жива ли прокся или как ойнить бред который живет на этом порту то достаточн оприконетиться иначе она мертва.
 
Ответить с цитированием

  #5  
Старый 24.01.2006, 00:29
F1reF0x
Познающий
Регистрация: 13.11.2004
Сообщений: 48
С нами: 11310341

Репутация: 25
По умолчанию

Простой чекер прокси на компонентах (просто пример, перпиши на WinSock).

Var
Source: String;
Host: String;
Port: String;
I: Integer;
P: Integer;
Begin
For i:= 0 to SourceMemo.Lines.Counts - 1 do
Begin
P:= Pos(':', SourceMemo.Lines.String[i]);
Host:= Copy(SourceMemo.Lines.String[i], 0 , P);
Port:= Copy(SourceMemo.Lines.String[i], P + 1, Length(SourceMemo.Lines.Strings[i] - p - 1));
idHTTP.ProxyParams.Host:= Host;
idHTTP.ProxyParams.Port:= StrToInt(Port);
Source:= idHTTP.Get('http://ya.ru');
if Pos('http://www.yandex.ru/', Source) <> 0 then
Begin
ResultMemo.Lines.Add(Proxy + ' : ' + Port + ' подключение удалось');
End
Else
Begin

ResultMemo.Lines.Add(Proxy + ' : ' + Port + ' подключение не удалось');
End;
End;
ResultMemo.Lines.SaveToFile('Checked.txt');
End;

Хотя писать чекер на компонентах глупо
 
Ответить с цитированием

  #6  
Старый 24.01.2006, 02:02
Barsik
Постоянный
Регистрация: 16.01.2005
Сообщений: 300
С нами: 11217926

Репутация: 726
По умолчанию

Это на Дэльфе чтоль?
 
Ответить с цитированием

  #7  
Старый 24.01.2006, 03:10
Raider
Познающий
Регистрация: 02.05.2005
Сообщений: 42
С нами: 11065621

Репутация: 9
По умолчанию

Цитата:
Это на Дэльфе чтоль?
Ну да
 
Ответить с цитированием

  #8  
Старый 24.01.2006, 14:32
F1reF0x
Познающий
Регистрация: 13.11.2004
Сообщений: 48
С нами: 11310341

Репутация: 25
По умолчанию

Цитата:
Это на Дэльфе чтоль?
Это процедура для кнопки Start. (Delphi)

Если кто не понял ещё на форме полжные прсутвовать 2 Memo исменами SourceMemo и ResultMemo и компонент idHTTP со вкладки Indy Clients и ещё одна кнопка (как раз для неё процедура написаная выше).
 
Ответить с цитированием

  #9  
Старый 25.01.2006, 01:59
Raider
Познающий
Регистрация: 02.05.2005
Сообщений: 42
С нами: 11065621

Репутация: 9
По умолчанию

Сёдня попытался сделать простенький чекер на сокетах, зацените )
(думаю в коментариях код не нуждается ... да и в лом как-то коментить =)

Код:
type
  PCheckProxy = ^TCheckProxy;
  TCheckProxy = record
    ProxyHost : PChar;
    ProxyPort : Word;
    Timeout   : Byte; // в секундах
    ConnectTo : PChar;
    ControlStr: PChar;
  end;

function CheckProxy(lpCheckProxy: PCheckProxy) : Boolean;

function GetIpByName : Boolean;
var
  HostEnt: PHostEnt;
begin
  HostEnt := gethostbyname(lpCheckProxy^.ProxyHost);
  Result := HostEnt <> nil;

  if Result then
    lpCheckProxy^.ProxyHost := inet_ntoa(PInAddr(HostEnt.h_addr_list^)^);
end;

var
  Arg: Integer;
  Query: String;
  TV: TTimeVal;
  FSet: TFDSet;
  Socket: TSocket;
  addr: sockaddr_in;
  WSAData: TWSAData;

procedure IoCtl(cmd: DWord);
begin
  ioctlsocket(Socket, cmd, Arg);
end;

begin
  Result := False;
  if WSAStartup($0101, WSAData) = 0 then
    try
      Socket := WinSock.socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
      if Socket <> INVALID_SOCKET then
        try
          if inet_addr(lpCheckProxy^.ProxyHost) = INADDR_NONE then
            if not GetIpByName then
              Exit;

          ZeroMemory(@addr, SizeOf(sockaddr_in));
          with addr, lpCheckProxy^ do
          begin
            sin_family      := AF_INET;
            sin_port        := htons(ProxyPort);
            sin_addr.S_addr := inet_addr(ProxyHost);
          end;

          Arg := 1;
          IoCtl(FIONBIO);
          FD_ZERO(FSet);
          FD_SET(Socket, FSet);
          TV.tv_sec := lpCheckProxy^.Timeout; TV.tv_usec := 0;
          connect(Socket, addr, SizeOf(sockaddr_in));
          if WSAGetLastError <> WSAEWOULDBLOCK then
            Exit;
          if select(0, nil, @FSet, nil, @TV) <> 1 then
            Exit;

          Arg := 0;
          IoCtl(FIONBIO);

          Query := 'GET ' + lpCheckProxy^.ConnectTo + ' HTTP/1.1'#13#10'User-Agent: Mozilla/4.0'#13#10#13#10;
          if send(Socket, PChar(Query)^, Length(Query), 0) = SOCKET_ERROR then
            Exit;

          with lpCheckProxy^ do
            ControlStr := PChar(LowerCase(ControlStr));

          while not Result do
          begin
            if select(0, @FSet, nil, nil, @TV) <> 1 then
               Break;
            IoCtl(FIONREAD);
            if Arg = 0 then
              Exit;

            SetLength(Query, Arg);
            recv(Socket, PChar(Query)^, Arg, 0);
            Result := Pos(lpCheckProxy^.ControlStr, LowerCase(Query)) <> 0;
          end;
          shutdown(Socket, SD_BOTH);
        finally
          closesocket(Socket);
        end;
    finally
      WSACleanup;
    end;
end;
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка мыл на валидность паса vorishka Уязвимости Mail-сервис 10 17.04.2012 20:22
Проверка статуса на инвизибл *Van* Skype, IRC, ICQ, Jabber и другие IM 32 17.08.2009 02:56
Проверка различных ОС при помощи nmap k00p3r Статьи 0 08.06.2005 13:32



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.