![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
Turanda |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 23.7.2009 Репутация: нет Всего: нет |
В принципе тема не новая тут, но подходящего не нашел поэтому решил создать тему.
Проблема в том что нужно просканировать локальную сеть по IP и узнать какие включены. сейчас делаю это так:
Но это работает очень медленно причем, если хост недоступен то проверка его длится еще дольше. Есть такая программа Xspider сканер безопасности, ну или другие сканеры сетей, вот интерестно как у них организовано сканирование, т.к. упомянутый спайдер сканит за 3 секунды весь диапазон. Как такого же добиться? |
|||
|
||||
gambit |
|
|||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: нет Всего: 40 |
Turanda, возможно вариант безумный, я не спец в сетях, но он пришел в голову первым.
Пинг. Ответили - работаем, не ответили за секунду, значит выключен. Массового разослать пинг по сети, прослушать ответы, сделать вывод кто включен, а кто нет |
|||
|
||||
Turanda |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 23.7.2009 Репутация: нет Всего: нет |
вот получалось теперь так:
Да добавил время стало намного быстрей, можно сказать наверное даже что проблема решена ![]() Это сообщение отредактировал(а) Turanda - 2.11.2010, 12:47 |
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 3 Всего: 36 |
сейчас меня gambit заклюёт, но советую взглянуть на интеропные функции - и возможностей больше, и скорость куда выше
ещё такая таска отлично параллелится, можно создать кучу потоков для проверки компов ну и я тут попробовал идти не от адресов, а от имеющих компов - это избавит от проверок заведомо недоступных машин, т.е. получаю список компов, а там уже можно проверить его адреса на вхождение в диапазон такой код в приличном домене отрабатывает за 99мс:
Это сообщение отредактировал(а) mihryak - 2.11.2010, 13:44 |
|||
|
||||
gambit |
|
||||||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: нет Всего: 40 |
С чего? Даже профессионалы могут ошибаться, не говоря уже про меня. Тем более я написал:
Добавлено через 45 секунд хотя
не айс Добавлено через 3 минуты и 36 секунд А если отталкиваться от моей безумной идеи, и распараллелить вот это получиться конфетка. Правда стоит учесть, что вкл. комп тоже может не ответить на пинг Добавлено через 11 минут и 59 секунд
|
||||||
|
|||||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 3 Всего: 36 |
||||
|
||||
gambit |
|
|||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: нет Всего: 40 |
mihryak,
если имеется ввиду вот эта тема - http://forum.vingrad.ru/forum/topic-306772...0/view-all.html ну не сказать что я накинулся, просто высказал мнение о том, что без этого можно обойтись. Не знаю, может это моя личная неприязнь, но я буду как уж выворачиваться, но на интеропные функции не посмотрю. |
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 3 Всего: 36 |
Ну вот на более серьёзном диапазоне (192.168.0.0-192.168.255.255) у меня компы проверились за 3.5 секунды, а твой вариант (без распараллеливания, правда, - у меня его нет) ушёл в астрал минут 10 назад, по пути несколько раз завалившись на определении имени компа по адресу, не знаю, что там происходит сейчас
И, заодно, я не знаю, как исключительно средствами фрейворка радикально увеличить скорость, разве что wmi, да и тот ведь ни разу не .нет. Кроме того, вариант с пингом - не самый удачный, пинг может не пропускаться файрволом (впрочем, network discovery сервис может тоже быть вырублен). |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 1 Всего: 306 |
ping хорош в единичном случае, но использовать его в цикле я бы определенно не стал. на мой взгляд - решение mihryak кошернее, хотя я бы двигался в сторону wmi.
порою от нативных библиотек не уйти. изощренные вывороты могут положить производительность на лопатки. |
|||
|
||||
Turanda |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 23.7.2009 Репутация: нет Всего: нет |
to mihryak
А где в вашем коде указывается диапазон IP адресов? P.S. Чет ни как не могу понять :( А так запустил код, единственное что выдал: Elapsed time: 33342. я не очень долго ждал. |
|||
|
||||
gambit |
|
|||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: нет Всего: 40 |
Конкретно в данном случае, я не оспариваю, я изначально написал, что идея бредовая. Если возможно, протести пож. вариант с распараллеливанием. По логике он должен быть координально быстрее, так как будут запускаться все новые потоки, которые проц не напрягают, а просто ждут ответа. В случае с одним потоком, он ждет ответ от каждого компа, и только потом отправляет следующему.
Это да, но как то душа не лежит((( |
|||
|
||||
KortenevStas |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
У меня стоит VS2005. NetworkInformation space не доступно. Надо отдельно Reference подключать?
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |