Страница 4 из 6

Re: Интеграция Wake On Lan

Добавлено: Пт мар 29, 2013 6:48 pm
Alex
Понятно. Этот вопрос я как нибудь решу. А в общем, нас можно поздравить — теперь мы умеем включать и выключать компьютеры в локальной сети. И это реально круто. :)

Следующий шаг — как бы поуправлять компьютером в сети. Например, по команде из МДМ запустить программу или скопировать файл на сетевом компьютере?

Re: Интеграция Wake On Lan

Добавлено: Пт мар 29, 2013 8:36 pm
anemcov
Есть такая штука для Винды - telnet.
Но там только файловые операции легко даются.
Надо что-то сторонее искать.

Re: Интеграция Wake On Lan

Добавлено: Ср апр 17, 2013 12:25 pm
Stealth
Усовершенствовал код, приведённый в начале топика: подправил дизайн, причесал, вычистил мусор, ссылка для быстрого включения теперь появляется в адресной строке браузера, скрипт не привязан к имени файла скрипта, и для надежности он шлёт сразу 10 Magik Packets, а то UDP не особо надёжен знаете ли, к тому же теперь он распознаёт как формат XX:XX:XX:XX:XX:XX, так и XX-XX-XX-XX-XX-XX в MAC адресе... Делал для себя, ну и заодно с вами поделиться решил. :-)

Код: Выделить всё

<?php

print('<font size=+1><b>Wake On Lan</b></font><br><br>');

$ip_or_host = $_GET['ip_or_host'];
$mac_addres = $_GET['mac_addres'];
$port = $_GET['port'];

print("
<form name=\"forma\" method=\"get\">
<table>
<tr>
<td>IP адрес или Domain Name: </td><td><input type=\"text\" name=\"ip_or_host\" value=\"$ip_or_host\" style=\"width:200px;\"></td>
</tr>
<tr>
<td>MAC адрес: </td><td><input type=\"text\" name=\"mac_addres\" value=\"$mac_addres\" style=\"width:200px;\"></td>
</tr>
<tr>
<td>Порт: </td><td><input type=\"text\" name=\"port\" value=\"$port\" style=\"width:200px;\"></td>
</tr>
</table>
<input type=\"submit\" value=\"Отправить\">
</form>
<a href=\"wol.zip\" target=\"_blank\"><font size=-1 color=black>Source Code</font></a><br><br>");

if($ip_or_host != "" && $mac_addres != "" && $port != ""){

$package = chr(255).chr(255).chr(255).chr(255).chr(255).chr(255);
$parts_mac = explode('-', $mac_addres);
if($parts_mac[5] == "") $parts_mac = explode(':', $mac_addres);
for ($i = 0; $i < 6; $i++) $transform_mac .= chr(hexdec($parts_mac[$i]));
for ($i = 0; $i < 16; $i++) $package .= $transform_mac;

$wol = fsockopen("udp://$ip_or_host", $port);
for($i = 0; $i < 10; $i++) fwrite($wol, $package);
fclose($wol);

print("<font size=+1 color=blue><b>$i Magic Packets отправлено на адрес $ip_or_host:$port (MAC $mac_addres)</b></font><br><br>
Ссылка для быстрого включения компьютера в дальнейшем находится в адресной строке браузера");

}

?>

Re: Интеграция Wake On Lan

Добавлено: Ср апр 17, 2013 12:39 pm
Urbas81
А я воспользовавшись кодом внедрил включение через WOL прямо в интерфейс MDM, у меня есть возможность дистанционно включать 2 компьютера, вот их маки я и забил жестко в код, и теперь только через selectbox выбираю имя и нажимаю кнопку Send. Хотел такую страницу поместить на роутер, но компьютеры почему-то не включались, хотя прав наставил по максимуму.

Re: Интеграция Wake On Lan

Добавлено: Ср апр 17, 2013 12:51 pm
dmw
Зачем все выводить в отдельный php?
Я вот в меню сделал кнопку "Включить" с кодом:

Код: Выделить всё

$ip_or_host ="ххх.ххх.ххх.ххх"; //ip удаленного устройства
$mac_addres ="хх:хх:хх:хх:хх:хх"; //mac удаленного устройства
$port = '7';
$package = chr(255).chr(255).chr(255).chr(255).chr(255).chr(255);
$parts_mac = explode(':', $mac_addres);  
for ($i=0; $i < 6; $i++) $transform_mac .= chr(hexdec($parts_mac[$i]));
for($i = 1; $i <= 16; $i++) $package .= $transform_mac;
$wol = fsockopen("udp://$ip_or_host", $port);
for($i = 0; $i < 5; $i++) fwrite($wol, $package);
fclose($wol);
и кнопку "Выключить" с кодом (сервер на ubuntu):

Код: Выделить всё

$ip_or_host ="ххх.ххх.ххх.ххх"; //ip удаленного устройства с ОС Windows
shell_exec("net rpc shutdown -f -I $ip_or_host -U '$ip_or_host\login%password'");
Также, как сказал Urbas81, легко и просто можно сделать переключатель с совмещающим в себе эти оба кода и исполнять их то один кусок то другой в зависимости от состояния какойто переменной, например из модуля "Устройства Online".

Re: Интеграция Wake On Lan

Добавлено: Вс апр 21, 2013 9:45 pm
Vadymkyr
вот еще нашел статью про удаленное выключение компьютера по сети.
Выключение или перезагрузка компьютеров по сети

Re: Интеграция Wake On Lan

Добавлено: Вт апр 23, 2013 11:54 am
Urbas81
Никак не получается пробудить компьютер при размещении страницы на роутере, кто подскажет в чем может быть ньюанс, из MDM срабатывает, тот же код при размещении на роутере нет, командой из консоли роутера тоже будится, со страницы никак.

Re: Интеграция Wake On Lan

Добавлено: Сб мар 19, 2016 11:03 am
chuk3
dmw писал(а):Зачем все выводить в отдельный php?
Я вот в меню сделал кнопку "Включить" с кодом:

Код: Выделить всё

$ip_or_host ="ххх.ххх.ххх.ххх"; //ip удаленного устройства
$mac_addres ="хх:хх:хх:хх:хх:хх"; //mac удаленного устройства
$port = '7';
$package = chr(255).chr(255).chr(255).chr(255).chr(255).chr(255);
$parts_mac = explode(':', $mac_addres);  
for ($i=0; $i < 6; $i++) $transform_mac .= chr(hexdec($parts_mac[$i]));
for($i = 1; $i <= 16; $i++) $package .= $transform_mac;
$wol = fsockopen("udp://$ip_or_host", $port);
for($i = 0; $i < 5; $i++) fwrite($wol, $package);
fclose($wol); 
и кнопку "Выключить" с кодом (сервер на ubuntu):

Код: Выделить всё

$ip_or_host ="ххх.ххх.ххх.ххх"; //ip удаленного устройства с ОС Windows
shell_exec("net rpc shutdown -f -I $ip_or_host -U '$ip_or_host\login%password'"); 
Также, как сказал Urbas81, легко и просто можно сделать переключатель с совмещающим в себе эти оба кода и исполнять их то один кусок то другой в зависимости от состояния какойто переменной, например из модуля "Устройства Online".
День добрый!
Пробую ваш код на включение не срабатывает, сторонней програмой включает с этого же компьютера без проблем, причем достаточно мака, сутки бьюсь. Ткните куда смотреть и что можно проверить. Спасибо.

Re: Интеграция Wake On Lan

Добавлено: Сб мар 26, 2016 10:18 pm
Sat
*fixed*

Re: Интеграция Wake On Lan

Добавлено: Чт апр 07, 2016 3:52 pm
Zaezd2008
Для тех, кто прочитав тему до конца так и не понял как выключать комп на Винде удаленно.
1. На компьютере, который хотим выключать. Нажав комбинацию клавиш «Win+R» вводим gpedit.msc
Слева Политика "Локальный компьютер"-«Конфигурация компьютера»-«Конфигурация Windows»-«Параметры безопасности»-«Локальные политики» - «Назначение прав пользователя»-«Принудительное удаленное завершение работы»
Добавляем пользователя, у меня компы в домашней сети, поэтому добавил HomeGroupUser$. если нет домашки, то можно просто Все.
2. Добавляем сценарий, заменив HOST своим:
shell_exec("shutdown -s -f -m \\\HOST -t 60 -d up:125:1");