imho.ws |
![]() |
![]() |
![]() |
# 1 |
Guest
Сообщения: n/a
|
Удаленное включение выключение компа
Хочется написать утилитку которая будет это делать.
Для решения нужен: 1. сервис который будет слушать порт и выключать комп по команде 2. Посыллка пакета на удаленный комп для включения его. Как писать сервисы я знаю. Но в сетях не рублю. Сразу скажу, что писать хочу сам (не нужны готовые решения). В общем кинте ссылки на примеры или статьи. Нужно описание пакета который надо слать для включения компа. И может есть спец пакет который комп выключает и тогда не придется писать сервис. Нужна также инфа о том каким способом эти пакеты слать. Заранее спасибо. |
![]() |
# 2 |
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
Если айпи известен и постоянен - тогда все тривиально - открывается сокет и в него потоком вливаются данные... если нет - то тут все несколько сложнее... Кстати а зачем это нужно? есть такая штука как ремоут сервис - удаленный рабочий стол, чтоли... вроде так называется...
Это что касается выключения... а вот включения - это уже другой вопрос... В принципе опять же если айпишник известен можно попробовать в биосе выставить включение по ЛАН... но, если честно, ни разу не пробовал ![]()
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
![]() |
![]() |
# 3 |
Member
Регистрация: 18.07.2005
Пол: Male
Сообщения: 232
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
3DRaven, на чем кодить хотите? Есть пример под Delphi. А вообще - все достаточно тривиально. Команды для выключения храним прямо в сервере (использовать можно API-функции), клиентом передаем серверу какое-либо зарезирвированное сообщение (можно даже любую букву), после получения которого сервер автоматически вызывает api, выключающую компьютер.
|
![]() |
![]() |
# 4 | |
Junior Member
Регистрация: 19.11.2004
Адрес: Dnepropetrovsk
Пол: Male
Сообщения: 67
![]() |
Цитата:
Специальных пакетов не существует - нужно будет обрабатывать полученную инфу на клиенте и от результатов обработки выполнять действие. Кроме сокетов для этих целей можно приспособить DCOM. А для включения по сети - необходимо что бы машина была не выключена а находилась в состоянии саспенд - и в биосе должна быть возможность разбудить ее по сигналу с прерывания сетевой. Вобщем гугл - сокет, socket, RPC DCOM. пример работы с сокетами можно найти во МСДН
__________________
![]() |
|
![]() |
![]() |
# 5 |
Guest
Сообщения: n/a
|
Если не трудно кинте пример...хоть на делфи. Почта 3DRaven@omgtu.ru Писать буду на С++ в MSVS. Пишется все для стандартных компов. Утилитка нужна для удобства в работе. Есть Unix утилиты которые это делают, вот в винде их нет...только выключение. Всем спасибо.
|
![]() |
# 6 |
Junior Member
Регистрация: 18.04.2005
Сообщения: 157
![]() ![]() ![]() ![]() |
3DRaven, если тебе интерес не накодить, а включить, тогда wakeup программка называется. в стендбае компу совсем не надо быть. надо что бы он был подключен к сети (т.е. питание не выключино из розетки), и мать поддерживала WON (wake on lan). в отдельных случаях в сетевуху надо кабелечек к матерешечке (в старых). прога wakeup посылает спец.пакет.
LarryBF, ты поделился программулиной хорошей. если уж тут тема про включение - выключение, хочу вопрос по теме. исходя из твоей программулины, я предположил, что пишешь ты на асме. я только изучать его начинаю, а вопрос назрел уже сейчас. исходник бы какого-нибудь маленького кодика (ком или екзе) для выключения компа. т.е. когда екзешник запустил, винда выключила ось, но по правильному, а не просто биос вырубил питание (но и такую было бы хорошо). зы: заранее благодарен ![]()
__________________
![]() Последний раз редактировалось Vanhelsing; 12.09.2005 в 16:35. |
![]() |
![]() |
# 7 | |
Member
Регистрация: 18.07.2005
Пол: Male
Сообщения: 232
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Vanhelsing, не пишу я пока на ассемблере.
![]() Цитата:
|
|
![]() |
![]() |
# 8 |
Junior Member
Регистрация: 18.04.2005
Сообщения: 157
![]() ![]() ![]() ![]() |
LarryBF, и на С++ тоже что ли? так ты на С пишешь? на самом деле пытаюсь плавным переходом от PHP -> VB -> C++ -> Assembler изучать. ищу умных людей. раньше, когда еще работал на ZX80, была пара знакомых хороших, один программил, другой учился программить и крекать. и я туда же. а когда перешел на архитектуру x86 офигел от разнообразия регистров etc., литературы такой, как для синклера вообще найти не могу. в общем, тяжело мне жить на x86, приходиться админить
![]()
__________________
![]() |
![]() |
![]() |
# 11 |
Guest
Сообщения: n/a
|
Написал уже утилитку...интерес был именно накодить. В общем объясняю обществу :) Ассемблер сдесь не нужен. Создаете сокет, который работает с UDP. Потом шлете спец пакет на 40000 порт (сработало только на нем).
Пакет : 0xFF (6 раз) потом 16 раз MAC машины которую включить хочеш. При посылке слать всем (IP 255.255.255.255 и/или BROADCAST). Вот и вся премудрость. Может быть и выложу для обозрения через недельку. Щас надо написать сервис который будет слушать порт и при приходе команды выключать комп (ужде написал слушателя ща надо просто интерфейс гуевый сделать надо и загрузку данных из конфига). В результате в конце утилитка будет включать и выключать комп по сети и в отличае от многих будет удобной. |
![]() |
# 14 |
Newbie
Регистрация: 18.08.2003
Сообщения: 22
![]() |
как-то подозрительно мало где будет такое работать. потому что все левые порты файер просто не пропустит. а если есть административный доступ к компам, то можно и вообще ничего не писать. даже готовые утилитки были на sysinternals, кажется
|
![]() |