ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |

22.12.2005, 19:31
|
|
Постоянный
Регистрация: 21.09.2005
Сообщений: 525
Провел на форуме: 2994394
Репутация:
547
|
|
Проверка проксика
Господа! Меня волнует вопрос какой запрос нужно послать прокси серверу, что бы он индетифицировал себя?
ЗЫ: Собираюсь писать прокси чекер "для_себя", просто не могу разобраться с запросом.
|
|
|

24.12.2005, 21:05
|
|
Флудер
Регистрация: 18.01.2005
Сообщений: 2,298
Провел на форуме: 13936387
Репутация:
1844
|
|
Ммм... не совсем ясна проблема... распиши пожалуйста подробнее, что именно тебе нужно ))) Всмысле, чтобы онидентифицировал себя?
|
|
|

11.01.2006, 08:59
|
|
Новичок
Регистрация: 21.10.2005
Сообщений: 11
Провел на форуме: 75734
Репутация:
3
|
|
просто попытайся подключиться к чему-нибудь через прокси-сервер
|
|
|

21.01.2006, 23:12
|
|
Постоянный
Регистрация: 13.08.2004
Сообщений: 957
Провел на форуме: 1770063
Репутация:
429
|
|
Если требуетсья установить прокся это или нет хз.
Если вообще жива ли прокся или как ойнить бред который живет на этом порту то достаточн оприконетиться иначе она мертва.
|
|
|

24.01.2006, 00:29
|
|
Познающий
Регистрация: 13.11.2004
Сообщений: 48
Провел на форуме: 91229
Репутация:
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;
Хотя писать чекер на компонентах глупо 
|
|
|

24.01.2006, 02:02
|
|
Постоянный
Регистрация: 16.01.2005
Сообщений: 300
Провел на форуме: 3463790
Репутация:
726
|
|
Это на Дэльфе чтоль?
|
|
|

24.01.2006, 03:10
|
|
Познающий
Регистрация: 02.05.2005
Сообщений: 42
Провел на форуме: 137056
Репутация:
9
|
|
Ну да 
|
|
|

24.01.2006, 14:32
|
|
Познающий
Регистрация: 13.11.2004
Сообщений: 48
Провел на форуме: 91229
Репутация:
25
|
|
Это процедура для кнопки Start. (Delphi)
Если кто не понял ещё на форме полжные прсутвовать 2 Memo исменами SourceMemo и ResultMemo и компонент idHTTP со вкладки Indy Clients и ещё одна кнопка (как раз для неё процедура написаная выше).
|
|
|

25.01.2006, 01:59
|
|
Познающий
Регистрация: 02.05.2005
Сообщений: 42
Провел на форуме: 137056
Репутация:
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;
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|