Wake-on-LAN

Ответить
Аватара пользователя
Guest

Wake-on-LAN

Сообщение Guest »

Здравствуйте!



Мне нужно из программы включить удаленно комп. На том компе Wake-on-LAN присутствует, проблема в том, как через API-вызовы (или еще как) послать сигнал компу включиться. Пробовал искать в MSDN - максимум, что нашел, это то, что нужно тому компу послать Magic Packet, но что это такое и как его послать...



И еще: чтобы комп включился по Wake-on-LAN он может быть выключен (Soft-Off) или нужно, чтобы он был в Suspend'е ?
Аватара пользователя
Vlad Drakula

Re: Wake-on-LAN

Сообщение Vlad Drakula »

Guest

для того чтобы комп включился нужно чтобы его материнка и сетевуха были под напряжением (комп может быть выключен)



что бы разбудить комп в биусе должна стоять галка "Wake-on-LAN"



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



но сетевуха должна это поддерживать!
Аватара пользователя
Dread Knight

Re: Wake-on-LAN

Сообщение Dread Knight »

Еще раз привет, если что - Guest это был я.



Поясню еще раз, чтобы советов с бухты барахты a-la Vlad Drakula (надеюсь, без обид?)  больше не поступало.



Материнка и сетевуха под напряжением (на свитче лампочки светятся), в биосе стоит галка, сетевуха WOL, ессесно, поддерживает (а в добавок и boot from lan, но суть не в этом).

Я все это знаю, и трабла моя не в этом. Вопрос ведь звучит не "почему у меня WOL не работает". Вопрос стоит так: какую(ие) функцию и из какой DLL нужно заюзать чтобы послать пакет по сети (я так понимаю, не по IP или имени компа, а по MAC адресу сетевухи), и что именно это должен быть за пакет, т.е. нужно либо название функции, либо (еще лучше), кусок кода, выполняющий данное действие.



На данный момент я сумел найти только функции Ndis, но во-первых для них мне нужен ndis.h, которого я что-то не нашел у себя, и во-вторых, судя по кое-чему из их описания, заюзать их можно только в режиме ядра, а значит из драйвера. Но драйвер писать как-то неохота, да и не нужны мне такие сложности. Может, есть еще что-нить?



И все так же неясно с Magic Packet.
Аватара пользователя
Vlad Drakula

Re: Wake-on-LAN

Сообщение Vlad Drakula »

Dread Knight

тебе нужна не "ndis.h" а "Ntddndis.h"
Аватара пользователя
hasherfrog

Re: Wake-on-LAN

Сообщение hasherfrog »

Dread Knight

Думаю, сначала стоит решить несколько теоритических вопросов и сделать несколько ламерских попыток прояснить ситуацию "вручную", У Вас есть машина (точнее, две + LAN), на которой Вы могли бы опробовать пробуждения? Если да, я предлагаю проверить:

1. Если пингануть "спящую" машину, она проснётся?

2. Что вообще необходимо/достаточно сделать на второй машине, чтобы проснулась "спящая".

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

1. Непатченные и ранние версии виндов вообще плохо "просыпаются". Да, я помню, что Вам надо включиться, а не проснутся, но если машина не выключилась, а "уснула", то будет как раз этот вариант.

2. Вытекает из первого пункта. По умолчания установка сетевой карты ключает режим "отключать сетевую карту для экономии". Имхо, это как-то может наложится на Wake-on-LAN.

ПС. Возможно, это дилетантские размышления, но... Мне же теперь тоже интересно, что это за Маджик-пакет Изображение



Добавлено:



ППС. Немного путанно вышло с терминами "спящая". В одном случае имеется в виду "в гибернации", в другом - "отключенная". Надеюсь, Вы поймёте.
Аватара пользователя
CyberDaemon

Re: Wake-on-LAN

Сообщение CyberDaemon »

Цитата:



И все так же неясно с Magic Packet



Дык есть же
Гугль
! Сылок вываливает - море. В первой же пятерке ссылок даже какую-то
DLL
найти можно.
Аватара пользователя
hasherfrog

Re: Wake-on-LAN

Сообщение hasherfrog »

Да, правду говорят: "Вера - это когда лень проверить". Я-то действительно решил, что инфу сложно найти...
Аватара пользователя
Dread Knight

Re: Wake-on-LAN

Сообщение Dread Knight »

Vlad Drakula

проверю, но не думаю, что мне это действительно нужно, почему - см. ниже



CyberDaemon

про гугль я и сам вспомнил, только вот Magic Packet поискать там как-то не додумался... Изображение

правда, ответа на свой вопрос я пока так и не нашел - либа это хорошо, но мне интересно, как оно работает.



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

Судя по ее импортам, она юзает сокеты, вот только как? Не то чтобы я совсем ламер, просто с сокетами я работал мало, и как с их помощью послать ровно 1 определнный пакет на определенный MAC- (а не IP-) адрес, представляю не смутно, а очень смутно (то есть не представляю совсем)



hasherfrog


Цитата:



Я-то действительно решил, что инфу сложно найти...



не, ну, я-то искал, просто не там, и не то Изображение



в общем, будем искать Изображение только не сейчас, а вечером.

но если кто чего может сказать сразу - скажу спасибо за сэкономленное мне время
Аватара пользователя
Guest

Re: Wake-on-LAN

Сообщение Guest »

как было сказано выше ... ты попробовал Google ?!?!



вот тебе несколько из результатов по поиску "WOL ethernet packet format":



http://www.matcode.com/wol.htm


  - это конзольная програмка

http://ahh.sourceforge.net/wol/wol.html#SEC4


  - описание magic packet-а

http://markh.de/software/wol.c


  - прогромный код... написан для Linux но очень просто доработавыется до Win.
Аватара пользователя
hasherfrog

Re: Wake-on-LAN

Сообщение hasherfrog »

По поводу данных Guest ссылок.

Пример wol.c делает броадкастовый посыл пакета, что не совсем корректно. Кроме того, емнип, я по гуглевым ссылкам, выдаваемых на запрос, приведённый CyberDaemon, видел (ещё раз емнип) содержимое маджик-пакета. В wol.c его нет.

Что касается программирования под winsock. Нужен обязательно 2.0, т.к. "сырые сокеты" поддерживаются только там.
Ответить

Вернуться в «Программирование и базы данных»