![]() |
Удаленное включение выключение компа
Хочется написать утилитку которая будет это делать.
Для решения нужен: 1. сервис который будет слушать порт и выключать комп по команде 2. Посыллка пакета на удаленный комп для включения его. Как писать сервисы я знаю. Но в сетях не рублю. Сразу скажу, что писать хочу сам (не нужны готовые решения). В общем кинте ссылки на примеры или статьи. Нужно описание пакета который надо слать для включения компа. И может есть спец пакет который комп выключает и тогда не придется писать сервис. Нужна также инфа о том каким способом эти пакеты слать. Заранее спасибо. |
Если айпи известен и постоянен - тогда все тривиально - открывается сокет и в него потоком вливаются данные... если нет - то тут все несколько сложнее... Кстати а зачем это нужно? есть такая штука как ремоут сервис - удаленный рабочий стол, чтоли... вроде так называется...
Это что касается выключения... а вот включения - это уже другой вопрос... В принципе опять же если айпишник известен можно попробовать в биосе выставить включение по ЛАН... но, если честно, ни разу не пробовал :) |
3DRaven, на чем кодить хотите? Есть пример под Delphi. А вообще - все достаточно тривиально. Команды для выключения храним прямо в сервере (использовать можно API-функции), клиентом передаем серверу какое-либо зарезирвированное сообщение (можно даже любую букву), после получения которого сервер автоматически вызывает api, выключающую компьютер.
|
Цитата:
Специальных пакетов не существует - нужно будет обрабатывать полученную инфу на клиенте и от результатов обработки выполнять действие. Кроме сокетов для этих целей можно приспособить DCOM. А для включения по сети - необходимо что бы машина была не выключена а находилась в состоянии саспенд - и в биосе должна быть возможность разбудить ее по сигналу с прерывания сетевой. Вобщем гугл - сокет, socket, RPC DCOM. пример работы с сокетами можно найти во МСДН |
Если не трудно кинте пример...хоть на делфи. Почта 3DRaven@omgtu.ru Писать буду на С++ в MSVS. Пишется все для стандартных компов. Утилитка нужна для удобства в работе. Есть Unix утилиты которые это делают, вот в винде их нет...только выключение. Всем спасибо.
|
3DRaven, если тебе интерес не накодить, а включить, тогда wakeup программка называется. в стендбае компу совсем не надо быть. надо что бы он был подключен к сети (т.е. питание не выключино из розетки), и мать поддерживала WON (wake on lan). в отдельных случаях в сетевуху надо кабелечек к матерешечке (в старых). прога wakeup посылает спец.пакет.
LarryBF, ты поделился программулиной хорошей. если уж тут тема про включение - выключение, хочу вопрос по теме. исходя из твоей программулины, я предположил, что пишешь ты на асме. я только изучать его начинаю, а вопрос назрел уже сейчас. исходник бы какого-нибудь маленького кодика (ком или екзе) для выключения компа. т.е. когда екзешник запустил, винда выключила ось, но по правильному, а не просто биос вырубил питание (но и такую было бы хорошо). зы: заранее благодарен :beer: |
Vanhelsing, не пишу я пока на ассемблере. :) А программулина просто была на диске. Изврат - писать подобную утилиту на ассемблере. Есть же API-функция, читайте Windows SDK:
Цитата:
|
LarryBF, и на С++ тоже что ли? так ты на С пишешь? на самом деле пытаюсь плавным переходом от PHP -> VB -> C++ -> Assembler изучать. ищу умных людей. раньше, когда еще работал на ZX80, была пара знакомых хороших, один программил, другой учился программить и крекать. и я туда же. а когда перешел на архитектуру x86 офигел от разнообразия регистров etc., литературы такой, как для синклера вообще найти не могу. в общем, тяжело мне жить на x86, приходиться админить :молись:
|
API-функции применяются в любой среде программирования.
|
приведенный тобой текст из каких доков? буду рад их почитать :yees:
|
Написал уже утилитку...интерес был именно накодить. В общем объясняю обществу :) Ассемблер сдесь не нужен. Создаете сокет, который работает с UDP. Потом шлете спец пакет на 40000 порт (сработало только на нем).
Пакет : 0xFF (6 раз) потом 16 раз MAC машины которую включить хочеш. При посылке слать всем (IP 255.255.255.255 и/или BROADCAST). Вот и вся премудрость. Может быть и выложу для обозрения через недельку. Щас надо написать сервис который будет слушать порт и при приходе команды выключать комп (ужде написал слушателя ща надо просто интерфейс гуевый сделать надо и загрузку данных из конфига). В результате в конце утилитка будет включать и выключать комп по сети и в отличае от многих будет удобной. |
Выложил: Socket1.rar смотрите кому надо...там класс сокета голый...сами разберетесь...все просто.
|
Извините, я здесь проездом. Но стоит подумать о консольной команде "net start" в WinXP. Она запускает/останавливает службы по сети. Что ещё она умеет я точно не знаю, не заморачивался. Это вам просто пища для размышления.
|
как-то подозрительно мало где будет такое работать. потому что все левые порты файер просто не пропустит. а если есть административный доступ к компам, то можно и вообще ничего не писать. даже готовые утилитки были на sysinternals, кажется
|
А можно перевыложить Socket1.rar, а то такая же самая проблема. А сети разбираться нету - надо принести и чтобы работало сразу.
|
| Часовой пояс GMT +4, время: 06:38. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.