2009-05-14 4 views
4

Каков наилучший способ продвижения Wake on LAN с помощью C#?Пробуждение по локальной сети с использованием C#

Функциональность необходима для компьютеров в локальной сети (а не через Интернет). Этот метод должен быть достаточно прочным, чтобы заботиться о брандмауэрах и других подобных проблемах. Кроме того, для систем, не поддерживающих эту функциональность, или с ее отключением, есть ли альтернатива?

Основная цель - просыпаться машины (из состояния выключения/спящего режима) по локальной сети - это запрограммировано с использованием C#.

Просим руководствоваться.

PS: Я наткнулся на следующее:

  1. http://blog.memos.cz/index.php/team/2008/06/12/wake-on-lan-in-csharp
  2. http://community.bartdesmet.net/blogs/bart/archive/2006/04/02/3858.aspx
  3. http://www.codeproject.com/KB/IP/cswol.aspx

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

+0

«Этот метод должен быть достаточно прочным, чтобы заботиться о брандмауэрах и других подобных проблемах». Что это значит? Вы хотите написать программу на C#, которая может проходить через любой брандмауэр и удастся разбудить машину за этим брандмауэром? Это большой вопрос ... – Stobor

ответ

12

Для задачи WOL вы должны прояснить три проблемы, чтобы заставить его работать:

  1. Отправить WOL через сетевой кабель
  2. Настройте ваш компьютер для прослушивания таких пакета и просыпается
  3. Убедитесь, что пакет будет исходить от отправителя к получателю (межсетевой экран, шлюзы и т.д.)

Как вам В сети уже есть несколько решений для первой проблемы, запрограммированной на C# (и после снятия ссылок я начну с первого).

Второе - это то, чего вы можете достичь только путем настройки сетевого адаптера. Просто откройте диспетчер устройств и посмотрите на свойства вашего сетевого адаптера, если такая опция существует, и если вы можете включить ее. Это невозможно запрограммировать из-за того, что у каждого сетевого адаптера есть другая реализация этой функции и как ее можно активировать.

Третья проблема также не может быть решена с помощью C#. Это чистая сетевая проблема, когда вам нужно настроить маршрутизатор, шлюзы, системы идентификаторов и т. Д., Чтобы разрешить такой пакет и позволить ему переходить от отправителя к получателю. В связи с тем, что WOL-пакет всегда является широковещательным пакетом (dest-ip 255.255.255.255), он не покидает вашу локальную сеть и всегда будет удаляться с маршрутизатора, шлюзов или любого другого моста между сетями (например, vpns, и т.д.).

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

Смежные вопросы