Здравствуйте!
Мне нужно из программы включить удаленно комп. На том компе Wake-on-LAN присутствует, проблема в том, как через API-вызовы (или еще как) послать сигнал компу включиться. Пробовал искать в MSDN - максимум, что нашел, это то, что нужно тому компу послать Magic Packet, но что это такое и как его послать... И еще: чтобы комп включился по Wake-on-LAN он может быть выключен (Soft-Off) или нужно, чтобы он был в Suspend'е ? |
Guest
для того чтобы комп включился нужно чтобы его материнка и сетевуха были под напряжением (комп может быть выключен) что бы разбудить комп в биусе должна стоять галка "Wake-on-LAN" потом по сети нужно послать этому компу пакет данных, тогда сетевуха даст сигнал и комп начнет загружаться. но сетевуха должна это поддерживать! |
Еще раз привет, если что - Guest это был я.
Поясню еще раз, чтобы советов с бухты барахты a-la Vlad Drakula (надеюсь, без обид?) больше не поступало. Материнка и сетевуха под напряжением (на свитче лампочки светятся), в биосе стоит галка, сетевуха WOL, ессесно, поддерживает (а в добавок и boot from lan, но суть не в этом). Я все это знаю, и трабла моя не в этом. Вопрос ведь звучит не "почему у меня WOL не работает". Вопрос стоит так: какую(ие) функцию и из какой DLL нужно заюзать чтобы послать пакет по сети (я так понимаю, не по IP или имени компа, а по MAC адресу сетевухи), и что именно это должен быть за пакет, т.е. нужно либо название функции, либо (еще лучше), кусок кода, выполняющий данное действие. На данный момент я сумел найти только функции Ndis<чего-нибудь>, но во-первых для них мне нужен ndis.h, которого я что-то не нашел у себя, и во-вторых, судя по кое-чему из их описания, заюзать их можно только в режиме ядра, а значит из драйвера. Но драйвер писать как-то неохота, да и не нужны мне такие сложности. Может, есть еще что-нить? И все так же неясно с Magic Packet. |
Dread Knight
тебе нужна не "ndis.h" а "Ntddndis.h" |
Dread Knight
Думаю, сначала стоит решить несколько теоритических вопросов и сделать несколько ламерских попыток прояснить ситуацию "вручную", У Вас есть машина (точнее, две + LAN), на которой Вы могли бы опробовать пробуждения? Если да, я предлагаю проверить: 1. Если пингануть "спящую" машину, она проснётся? 2. Что вообще необходимо/достаточно сделать на второй машине, чтобы проснулась "спящая". Если знать хотя бы такие мелочи, можно решить вопрос бвстрее. Дело в том, что я лично никогда этим не пользуюсь, потому что: 1. Непатченные и ранние версии виндов вообще плохо "просыпаются". Да, я помню, что Вам надо включиться, а не проснутся, но если машина не выключилась, а "уснула", то будет как раз этот вариант. 2. Вытекает из первого пункта. По умолчания установка сетевой карты ключает режим "отключать сетевую карту для экономии". Имхо, это как-то может наложится на Wake-on-LAN. ПС. Возможно, это дилетантские размышления, но... Мне же теперь тоже интересно, что это за Маджик-пакет :) Добавлено: ППС. Немного путанно вышло с терминами "спящая". В одном случае имеется в виду "в гибернации", в другом - "отключенная". Надеюсь, Вы поймёте. |
|
Да, правду говорят: "Вера - это когда лень проверить". Я-то действительно решил, что инфу сложно найти...
|
Vlad Drakula
проверю, но не думаю, что мне это действительно нужно, почему - см. ниже CyberDaemon про гугль я и сам вспомнил, только вот Magic Packet поискать там как-то не додумался... :gigi: правда, ответа на свой вопрос я пока так и не нашел - либа это хорошо, но мне интересно, как оно работает. кстати, нашел я и прогу, которая включает мой комп по сети, и с ней все заработало как надо. Но хотелось бы узнать, как именно. Судя по ее импортам, она юзает сокеты, вот только как? Не то чтобы я совсем ламер, просто с сокетами я работал мало, и как с их помощью послать ровно 1 определнный пакет на определенный MAC- (а не IP-) адрес, представляю не смутно, а очень смутно (то есть не представляю совсем) hasherfrog Цитата:
в общем, будем искать :) только не сейчас, а вечером. но если кто чего может сказать сразу - скажу спасибо за сэкономленное мне время |
как было сказано выше ... ты попробовал 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. |
По поводу данных Guest ссылок.
Пример wol.c делает броадкастовый посыл пакета, что не совсем корректно. Кроме того, емнип, я по гуглевым ссылкам, выдаваемых на запрос, приведённый CyberDaemon, видел (ещё раз емнип) содержимое маджик-пакета. В wol.c его нет. Что касается программирования под winsock. Нужен обязательно 2.0, т.к. "сырые сокеты" поддерживаются только там. |
Время: 06:11. |
Время: 06:11.
© OSzone.net 2001-