Новая тулза для страждующих. Нужно как минимум тем кто юзает фришники.
Идея очень проста. В одном поле куча данных формата – 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 }
{ 18 comments… read them below or add one }
интересная задумка!
а че не многопоточная, поленился?
У меня не было так много ftp. ))
А так она итак быстро работает, она же только коннектится и в случае отлупа пишет что недоступен ftp
FTP Checker (PHP)
не редки фришники, которые пускаю по фтп, но не выдают сайт по хттп. По-моему даже народ сейчас так делает. По-хорошему надо бэкапить индексы из рута, и популярных public_html, wwwroot, etc., класть туда свои индексы и по хттп чекать сигнатуру. Тогда будет тру
Так у меня тут тоже сырцы есть 404 чекера. Объединить как 2 пальца..
да мне без надобности, у меня есть готовое ) так, идейку подкинул
А что значит строчка Application.ProcessMessages;
вот тут все подробно
А почему на 2007 делфу не идёшь?
Пойдет утиль.
Но я предпочитаю такое делать на пхп – тогда можно и на локале и на быстром сервере запускать
задумка хороша…я еще доработаю под себя и можно юзать…в любом случае спасибо!
Ну что за мода выкладывать не полную версию кода? Как ты выключил ошибки при IdFTP1.Login если пароль и логин не правильный?
Радует что читают и разбираются. Исходники все. Нету только dfm.
Правится легко – найди в папке с проектом dfm файл и сравни с моим
object IdFTP1: TIdFTP
MaxLineAction = maException
ReadTimeout = 0
Passive = True
ProxySettings.ProxyType = fpcmNone
ProxySettings.Port = 0
Left = 288
Top = 6
end
А кстати если ты код проверяешь в самой Delphi
то тебе в меню Debug надо отключить
Скопировал твои настройки компонента, ошибка не ушла… eidprotocolreplyerror with message «Login authentication failed»
А, не из Delphi прога работает без ошибки
Заходи в меню у Delph – Tools – Debugger options и отключи галку Integrated Debugging
А где скачать можно ? не вижу линк
Leave a Comment