День добрый. Помогите, кто чем может, пожалуйста. Есть такая проблема: Написал брут (как мог, но зато сам) для веб-формы. Отправляю POST-запрос на сервак, оттуда мне приходит ответ: хэдер, где находится нужная мне инфа (если в хэдере есть спец-знак, то значит пароль не подходит) + тело документа. Как мне сделать так, чтобы после получения хэдера вся страница дальше не качалась? Насколько я понял, именно из-за этого и возникают проблемы со скоростью, поскольку у меня (я мерял) 14-16 вариантов в минуту, а, например, в wwwhack для той же формы и при той же скорости соединения 90-100 вариантов в минуту. // Ответ от сервера приходит вот так: Code: procedure TForm1.ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket); begin FResult:=FResult+Socket.ReceiveText; end; Вот как мне из Socket.ReceiveText скачать только первые 500-600 символов? Этого должно хватить, чтобы отловить символ. Ну, или как сделать поиск нужного символа прямо "на лету" во время качалки? Если нужна какие-то дополнительные данные по исходнику - я дам.
Code: procedure TForm1.ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket); begin FResult:=FResult+Socket.ReceiveText; if pos('искомые_данные', FResult)>0 then ClientSocket.Close; end;
1. Code: var i:Word; I:=i+Length(Socket.ReceiveText); if i=>500 then ClentSocket1.Close; итог: заводишь новую переменную (почeму Word а не SmallInt/Integer? длинна не может быть отрицательной!!!) 2. Code: var str:string; str:=Socket.ReceiveText; if pos('authorization ok',LowerCase(str))>0 then ClientSocket1.Close; итог: в str помещаем данные полученные от сокета, функцией pos ищем данные, при том если функция возвращает >0 значит дынне есть. притом все данные переводятся в нижний регистр...