Mass ftp checker - массовая проверка фтп

by SeoCoder on Декабрь 22, 2007

Новая тулза для страждующих. Нужно как минимум тем кто юзает фришники.
Идея очень проста. В одном поле куча данных формата - ftp;login;password.
Справа после нажатия одной кнопки получим те кто не работает или не верный логин/пароль.
Весь код и готовый exe под катом, так что спешим подписаться на rss и пофлеймить в комментах.

Для начала файл проекта - Project1.dpr
[sourcecode language='delphi']
program Project1;
uses
Forms,
Unit1 in ‘Unit1.pas’ {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
[/sourcecode]
На вновь открытую форму кидаем: IdFTP и IdAntiFreeze. Добавляем одну копку для старта чека ftp и 2 memo для проверки данных. В первую мы кидаем наши ftp для проверки - во втором получим не рабочие.

ну и самый главный код Unit1.pas
[sourcecode language='delphi']
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdFTP, StdCtrls, ExtCtrls, ComCtrls,
IdAntiFreezeBase, IdAntiFreeze;

type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Panel1: TPanel;
Button1: TButton;
IdFTP1: TIdFTP;
Panel2: TPanel;
ProgressBar1: TProgressBar;
IdAntiFreeze1: TIdAntiFreeze;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i, j: integer;
ftp, username, password, tmp: string;
begin
i := 0;
ProgressBar1.Max := memo1.Lines.Count - 1;
ProgressBar1.Min := 0;
for i := 0 to memo1.Lines.Count - 1 do
begin
tmp := Memo1.Lines[i];
ProgressBar1.Position := i;
j := Pos(’;', tmp);
ftp := copy(tmp, 1, j - 1);
Delete(tmp, 1, j);
j := Pos(’;', tmp);
Username := copy(tmp, 1, j - 1);
Delete(tmp, 1, j);
password := tmp;
try
Application.ProcessMessages;
IdFTP1.Host := ftp;
IdFTP1.UserName := username;
IdFTP1.Password := password;
if not IdFTP1.Connected then IdFTP1.Connect(false);
if IdFTP1.Connected then IdFTP1.Login;
IdFTP1.Disconnect;
except
on E: Exception do
begin
Memo2.Lines.Add(’Not work - ‘ + username);
end;
end;
end;
end;

end.
[/sourcecode]

Как видите все просто. Имея сырцы - можете исправить как вам удобнее.
Ну а для тех кто не хочет кодить, а привык юзать мои тулзы приложен скопмилированый exe.
Mass ftp checker - массовая проверка фтп

{ 1 trackback }

Seo black blog » Архив блога
12.22.07 at 5:37 пп

{ 18 comments… read them below or add one }

1 Dmitry HT 12.22.07 at 7:14 пп

интересная задумка!
а че не многопоточная, поленился? :)

2 admin 12.22.07 at 7:16 пп

У меня не было так много http://ftp. ))
А так она итак быстро работает, она же только коннектится и в случае отлупа пишет что недоступен ftp

3 somebody 12.23.07 at 3:00 пп
4 99th 12.25.07 at 1:36 дп

не редки фришники, которые пускаю по фтп, но не выдают сайт по хттп. По-моему даже народ сейчас так делает. По-хорошему надо бэкапить индексы из рута, и популярных public_html, wwwroot, etc., класть туда свои индексы и по хттп чекать сигнатуру. Тогда будет тру ;)

5 admin 12.25.07 at 1:39 дп

Так у меня тут тоже сырцы есть 404 чекера. Объединить как 2 пальца..

6 99th 12.25.07 at 2:35 дп

да мне без надобности, у меня есть готовое ) так, идейку подкинул

7 vanik 12.27.07 at 4:03 дп

А что значит строчка Application.ProcessMessages;

8 admin 01.02.08 at 12:31 дп

http://www.delphihelp.org/processmessages.html вот тут все подробно

9 sd 01.04.08 at 12:43 дп

А почему на 2007 делфу не идёшь?

10 Vovan 01.11.08 at 1:02 дп

Пойдет утиль.
Но я предпочитаю такое делать на пхп - тогда можно и на локале и на быстром сервере запускать :)

11 Ромкин 01.17.08 at 4:26 дп

задумка хороша…я еще доработаю под себя и можно юзать…в любом случае спасибо!

12 Stine 01.18.08 at 6:42 пп

Ну что за мода выкладывать не полную версию кода? Как ты выключил ошибки при IdFTP1.Login если пароль и логин не правильный?

13 admin 01.18.08 at 6:54 пп

Радует что читают и разбираются. Исходники все. Нету только dfm.
Правится легко - найди в папке с проектом dfm файл и сравни с моим
object IdFTP1: TIdFTP
MaxLineAction = maException
ReadTimeout = 0
Passive = True
ProxySettings.ProxyType = fpcmNone
ProxySettings.Port = 0
Left = 288
Top = 6
end

14 admin 01.18.08 at 6:55 пп

А кстати если ты код проверяешь в самой Delphi
то тебе в меню Debug надо отключить ;)

15 Stine 01.18.08 at 7:03 пп

Скопировал твои настройки компонента, ошибка не ушла… eidprotocolreplyerror with message “Login authentication failed”

16 Stine 01.18.08 at 7:07 пп

А, не из Delphi прога работает без ошибки :)

17 admin 01.18.08 at 7:16 пп

Заходи в меню у Delph - Tools - Debugger options и отключи галку Integrated Debugging

18 neox 01.19.08 at 8:30 пп

А где скачать можно ? не вижу линк :(

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>