Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Сканирование портов


Автор: MaXL 10.11.2005, 16:25
Всех приветсвую!
Пожалуйста кто знает быстрые алгоритмы сканирования портов, желательно на Делфи, а то мне очень надо :-((, я знаю, только он очень медленный, ну или хотябы дайте какой-нибуть совет.

Автор: ne0n 10.11.2005, 20:57
Знаеш такую книжку "программирование Делфи глазами ][акера"?

Автор: MaXL 10.11.2005, 22:20
Знаю, там есть алгоритм, но он вроде не очень быстрый

Автор: ne0n 11.11.2005, 21:30
Если не ошибаюсь автор приводит два варианта сканера портов, один простой,
а второй цитирую автора:
Цитата
Самый быстрый сканер портов

если его исходник нужен то дам.

Автор: anikss 12.11.2005, 02:39
И я туда же! Подскажите пожалуйста, нужно просканировать один порт, но тоже желательно быстро. И еще хотелось бы, чтобы сервер, висящий на этом порту, не заметил соединения, а то я еще не научился с ServerSocket такую вещь, как обработка потери соединения, проделывать... Спасибо заранее!

Автор: MaXL 12.11.2005, 18:21
У меня есть эта книжка, в исходинике разобрался, ну по моим проверкам этот алгоритм сканирует 30000 портов ~17-19 минут, если ожидать 1 секунду(если ты разбирался в исходнике, то поймёшь), так вот скажите это нормально?

Автор: MIX55 13.11.2005, 13:58
Используй библиотеку WinSock smile

Автор: Quadr0 13.11.2005, 14:08
...

Автор: ne0n 13.11.2005, 16:17
Цитата(MaXL @ 12.11.2005, 18:21)
У меня есть эта книжка, в исходинике разобрался, ну по моим проверкам этот алгоритм сканирует 30000 портов ~17-19 минут, если ожидать 1 секунду(если ты разбирался в исходнике, то поймёшь), так вот скажите это нормально?



Quadr0 уже отвеьтил smile

Автор: MaXL 14.11.2005, 05:14
Конечно нет, мне это нужных просто для интереса, может потом и пригадится, только не для кулхакерских :-) smile

Автор: RA 16.11.2005, 18:47
Сканируй через несколько потоков.
http://forum.vingrad.ru/index.php?showtopic=25310&view=findpost&p=178511

Автор: bartram 16.11.2005, 23:01
Цитата(ne0n @ 11.11.2005, 21:30)
если его исходник нужен то дам.

Кинь исходник пожалуйста, если не жалко smile

Автор: MaXL 21.11.2005, 10:23
Цитата
Сканируй через несколько потоков.
http://forum.vingrad.ru/index.php?showtopi...ndpost&p=178511

Ты реально пробовал такой пример? если можешь скажи насколько выигрывается в скоростью? и нак сколько больше загружает в систему, я уже думал насчёт потокового сканирования, но потом забил на это, т.к. приблезительно посчитал, что выигрышь быдут очень маленький.

Автор: RA 21.11.2005, 16:06
MaXL Скорость сканирования портов по большому счёту зависит не от кода, а от тайм-аута установленного для каждого порта, тоесть если сканировать с таймаутом 20ms, то сканировать ты будешь очень быстро, но есть риск потерять несколько активных портов, сканировать с тайм-аутом в 2000ms очень надёжно но и очень долго.

Для локальных сетей 20 ms в полне достаточно, а иначе таймаут по пингу.

Сканируя в два потока ты просканируешь диапазон портов за половину времени сканирования в один поток, сканируя в 12 потоков ты просканируешь всё в 12 раз быстрее. и тд.

Многопотоковое сканирование может вызвать тормоза в системе, сам решай что выгодней 20 минут тормозов или 4 часа сканирования.

Очень многие сканнеры портов имеют настраиваемый тайм-аут, и кол-во потоков, таким орбразом опытный юзер сам выбирает между скоростью и производительностью.

Автор: MaXL 22.11.2005, 06:59
Скорее всего так и сделю, чтоб можно было выбирать сколько потоков использовать 1 или несколько, спасибо за идею smile

Автор: Dmitry05 22.11.2005, 09:32
мне кажется автор в этой книше допустил ошибку... IP-адрес в окне(InputQuery) мы ввели, а вот присвоить TcpClient-у его не присвоили... или я ошибаюсь?

Автор: MaXL 22.11.2005, 12:22
Цитата
мне кажется автор в этой книше допустил ошибку... IP-адрес в окне(InputQuery) мы ввели, а вот присвоить TcpClient-у его не присвоили... или я ошибаюсь?

В какой книге ты имеешь? ввиду, и если в той, о которой говорилось выше, то в каком именно примере, нужно посмотреть

Автор: Dmitry05 22.11.2005, 14:58
книга: Delphi глазами хакера. а пример 4.3 Сканер портов

Автор: ne0n 22.11.2005, 22:06
Цитата(bartram @ 16.11.2005, 23:01)
Кинь исходник пожалуйста, если не жалко smile

Конечно не жалко!!! давай мыло!!!

Автор: bartram 23.11.2005, 23:28
[quote=ne0n, 22.11.2005, 22:06]Конечно не жалко!!! давай мыло!!![/quot
ne0n, bartram[at]narod.ru

Автор: MaXL 24.11.2005, 02:50
Цитата
книга: Delphi глазами хакера. а пример 4.3 Сканер портов

Да кстате, но я на там примере сильно не сидел, вот который в главе 5.2.1 (Самый быстрый сканер портов), вот ое поинтересней.
Но а про этот пример что там мешает после того как он спросил IP адрес(прога), присвоить значение в Host TcpClient

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)