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 17:37

{ 18 comments… read them below or add one }

1 Dmitry HT 12.22.07 at 19:14

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

2 admin 12.22.07 at 19:16

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

3 somebody 12.23.07 at 15:00
4 99th 12.25.07 at 01:36

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

5 admin 12.25.07 at 01:39

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

6 99th 12.25.07 at 02:35

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

7 vanik 12.27.07 at 04:03

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

8 admin 01.02.08 at 00:31

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

9 sd 01.04.08 at 00:43

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

10 Vovan 01.11.08 at 01:02

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

11 Ромкин 01.17.08 at 04:26

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

12 Stine 01.18.08 at 18:42

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

13 admin 01.18.08 at 18: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 18:55

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

15 Stine 01.18.08 at 19:03

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

16 Stine 01.18.08 at 19:07

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

17 admin 01.18.08 at 19:16

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

18 neox 01.19.08 at 20: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> <pre lang="" line="" escaped="">