Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сканер через IdTCPClient, INDY 9 
:(
    Опции темы
Maestro
Дата 21.12.2005, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 7.9.2005

Репутация: нет
Всего: нет



Дайте пожалуйста пример быстрого сканера 21 (FTP) порта по LAN 10.10.10.1-10.10.10.255. Я пробовал с компонентом IdTCPClient в 16 потоков вобще невышло (невидит серверов), а 10 потоков работает, но чё-то медленно. Есть-же проги котрые делают это быстро.
PM MAIL   Вверх
Snowy
Дата 21.12.2005, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Вот:
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  type
  TScanTread = class(TThread)
  private
    tcp: TIdTCPClient;
  protected
    procedure Execute; override;
    procedure Sync;
  public
    host: string;
    port: integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TScanTread.Sync;
begin
  Form1.Memo2.Lines.Add('Есть: '+Host);
end;

procedure TScanTread.Execute;
begin
  tcp:=TIdTCPClient.Create(Form1);
  tcp.Host:=Host;
  tcp.Port:=Port;
  try
    tcp.Connect(2000);
    if tcp.Connected then Synchronize(Sync);
  finally
    tcp.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: byte;
begin
  for i:=1 to 254 do
    with TScanTread.Create(true) do
    begin
      Host:='10.10.10.'+IntToStr(i);
      Port:=21;
      FreeOnTerminate:=true;
      Memo1.Lines.Add(Host+' поставлен на скан.');
      Resume;
    end;
end;

end.

Быстрее не бывает smile
PM MAIL   Вверх
Maestro
Дата 21.12.2005, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 7.9.2005

Репутация: нет
Всего: нет



Спасибо за пример, но он не все сервера видит, даже если таймаут ставлю 10000. Прога SimpleFTP видит около 10 открытых портов, а моё приложение 2. Что делать?
PM MAIL   Вверх
Snowy
Дата 21.12.2005, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Видимо проблемма в чем-то другом.
Я, когда тестил этот код просканил сеть меньше, чем за секунду. Нашел все.
(Меня за это чуть не убили smile )
Вероятно есть какая-то защита от сканирования.

Цитата(Maestro @ 21.12.2005, 20:24)
Прога SimpleFTP видит около 10 открытых портов, а моё приложение 2. Что делать?

Так портов или компьютеров?
Может там ftp на других портах. Или может она врет...
Ты их вручную на коннект проверял?
PM MAIL   Вверх
Maestro
Дата 22.12.2005, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 7.9.2005

Репутация: нет
Всего: нет



Цитата
Так портов или компьютеров?
Я имел в виду компьютеров.
Цитата
Может там ftp на других портах. Или может она врет...
Исключено. Я и вручную проверял. Я когда тестил тот пример, что я привёл выше - в 5 потоков то находит больше серверов чем в 10 потоков, а 16 потоков вообще находит только мой сервер. В чем-же проблема? Как мне это сделать?....
PM MAIL   Вверх
Snowy
Дата 22.12.2005, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Да тебя, дружок, просто блокируют... За скан портов.
Нужно увеличивать интервал и сканить в один поток.
PM MAIL   Вверх
Maestro
Дата 24.12.2005, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 7.9.2005

Репутация: нет
Всего: нет



Спасибо.
PM MAIL   Вверх
Maestro
Дата 25.12.2005, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 7.9.2005

Репутация: нет
Всего: нет



...Но все равно непонятно. Немогу сделать сканирование быстрее чем прога SimpleFTP (от 1 до 255 за 3 мин.) ) или хотябы приблезительно одинаково. У меня не получается сделать быстрей чем одно соединения в секунду (от 1 до 255 за 4.5 мин.). Это вопрос скорее всего не по делфи а по сетям. Если кто знает подскажите.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0467 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.