![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ping!
and_2 © (2003-07-15 08:44:00)
Здравствуйте мастера, такой вопрос как пингнуть диапазон IP адресов ??? а лучше если это сделать одновременно! то есть послать по одному пакетику каждой машине и все это одновременно.
заранее спасибо
Verg (2003-07-18 16:20:00) [1]
> то есть послать по одному пакетику каждой машине и все это
> одновременно.
Одновременно? Ух ты!
Среднестатистическая сетевая карта одновременноможет посылать только один пакет - и тут хоть 50 млн. потоков на нее навалятся - ответ один: "В очередь, сукины дети, в очередь!" (C) "Собачье сердце".
Другое дело бродкастовые пакеты - типа один реквест послал - жди тепереь N секунд все респонсы, через N секунд подсчитывай сколь получилось.
В ICMP по-моему нет способа послать широковещательный ECHO_REQUEST, хотя .... можно попробовать.
Gigabyte (2003-07-18 10:06:00) [2]
Короче напиши мне, я тебе вышлю пример пинга через WinAPI и помогу организовать потоки
Anatoly Podgoretsky (2003-07-17 23:22:00) [3]
2^N
nikus (2003-07-17 19:05:00) [4]
Система больше тормозит при создании/высвобождении потоков, чем при выполнении (в данном случае). Предпочтительней, я считаю, ограничиться 50-ю потоками.
Morfein (2003-07-17 02:41:00) [5]
В данном случае потоков может быть и тысяча, и пять тысяч, и больше, без большой нагрузки на сеть... Потому как каждый поток большее кол-во времени проводит в ожидании ответа на пинг.
>>and_2
ICMP-пакет таки не один байт весит, а 28 + данные...
Anatoly Podgoretsky (2003-07-16 20:34:00) [6]
and_2 © (16.07.03 16:00)
Зачем же 2500 поток, рациональнее сканировать по сетя класса С, а это всего 256 потоков.
sergey2 (2003-07-16 20:05:00) [7]
> and_2 © (16.07.03 16:00)
> да не!
> допустим 2500 ипов значит 2500 потоков! по 1 пакету, который
> вести 1 байт! эт разве нагррузка ?
А зачем сразу 2500 потоков? Думаешь от этого быстрее будет?
and_2 (2003-07-16 17:15:00) [8]
ну так может кто нить выложит что нибудь ценное по делу?
у мя проблема с кодингом а с теорией все ок!
Fay (2003-07-16 16:43:00) [9]
>> да не!
>> допустим 2500 ипов значит 2500 потоков! по 1 пакету, который >> вести 1 байт! эт разве нагррузка ?
????????????????
and_2 (2003-07-16 16:00:00) [10]
да не!
допустим 2500 ипов значит 2500 потоков! по 1 пакету, который вести 1 байт! эт разве нагррузка ?
Digitman (2003-07-16 15:34:00) [11]
> Gigabyte
при чем здесь комп ? если уж на то пошло, кол-во тредов процесса в принципе ограничено !
но ничто не мешает организовать тред-пул
Anatoly Podgoretsky (2003-07-16 15:31:00) [12]
Известны случаи одновременной работы свыше 10000 потоков. Ты наверно что то не так делал.
Gigabyte (2003-07-16 15:23:00) [13]
> Digitman
столько потоков, сколько адресов пингуется в дан.момент времени !
Комп может не выдержать. По себе знаю
Digitman (2003-07-16 10:02:00) [14]
> and_2
почему "пару"-то ? если, как ты говоришь, "одновременно", то - столько потоков, сколько адресов пингуется в дан.момент времени !
Gigabyte (2003-07-15 21:33:00) [15]
Да ладно "синхронно"...
можно и не синхронно...
можно просто организовать массив а потом
For i:=0 to Threads.Count-1 do Threads[i].Resume;
они (Threads) даже не заметят что были запущены несинхронно т.к. будут заняты пингом
and_2 (2003-07-15 17:27:00) [16]
Мне подсказали что надо будет создать пару потоков thread"ов и запустить их синхронно! а как ?
Snap (2003-07-15 13:41:00) [17]
Eсли так хочется возиться, можно попробовать намутить бродцастовые или мультиадресные пакеты, только так можно добиться настоящей одновременности, но по моему дело того не стоит.
Digitman (2003-07-15 09:15:00) [18]
> и все это одновременно
для этой цели следует использовать доп.код.потоки, в каждом из которых пингуется отдельный хост (см. IcmpSendEcho)