[Сценарий] Интеграция Wake On Lan
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Интеграция Wake On Lan
Понятно. Этот вопрос я как нибудь решу. А в общем, нас можно поздравить — теперь мы умеем включать и выключать компьютеры в локальной сети. И это реально круто.
Следующий шаг — как бы поуправлять компьютером в сети. Например, по команде из МДМ запустить программу или скопировать файл на сетевом компьютере?
Следующий шаг — как бы поуправлять компьютером в сети. Например, по команде из МДМ запустить программу или скопировать файл на сетевом компьютере?
- За это сообщение автора Alex поблагодарил:
- димон устин (Ср янв 03, 2018 12:09 am)
- Рейтинг: 1.16%
-
- Сообщения: 211
- Зарегистрирован: Вт янв 08, 2013 11:50 pm
- Откуда: Санкт-Петербург
- Благодарил (а): 0
- Поблагодарили: 6 раз
Re: Интеграция Wake On Lan
Есть такая штука для Винды - telnet.
Но там только файловые операции легко даются.
Надо что-то сторонее искать.
Но там только файловые операции легко даются.
Надо что-то сторонее искать.
-
- Сообщения: 1
- Зарегистрирован: Ср апр 17, 2013 12:09 pm
- Благодарил (а): 0
- Поблагодарили: 2 раза
Re: Интеграция Wake On Lan
Усовершенствовал код, приведённый в начале топика: подправил дизайн, причесал, вычистил мусор, ссылка для быстрого включения теперь появляется в адресной строке браузера, скрипт не привязан к имени файла скрипта, и для надежности он шлёт сразу 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>
Ссылка для быстрого включения компьютера в дальнейшем находится в адресной строке браузера");
}
?>
- Рейтинг: 2.33%
-
- Сообщения: 289
- Зарегистрирован: Вс сен 16, 2012 9:39 am
- Благодарил (а): 0
- Поблагодарили: 1 раз
Re: Интеграция Wake On Lan
А я воспользовавшись кодом внедрил включение через WOL прямо в интерфейс MDM, у меня есть возможность дистанционно включать 2 компьютера, вот их маки я и забил жестко в код, и теперь только через selectbox выбираю имя и нажимаю кнопку Send. Хотел такую страницу поместить на роутер, но компьютеры почему-то не включались, хотя прав наставил по максимуму.
-
- Сообщения: 469
- Зарегистрирован: Вт мар 12, 2013 1:22 am
- Благодарил (а): 41 раз
- Поблагодарили: 81 раз
Re: Интеграция Wake On Lan
Зачем все выводить в отдельный php?
Я вот в меню сделал кнопку "Включить" с кодом: и кнопку "Выключить" с кодом (сервер на ubuntu):
Также, как сказал Urbas81, легко и просто можно сделать переключатель с совмещающим в себе эти оба кода и исполнять их то один кусок то другой в зависимости от состояния какойто переменной, например из модуля "Устройства Online".
Я вот в меню сделал кнопку "Включить" с кодом:
Код: Выделить всё
$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);
Код: Выделить всё
$ip_or_host ="ххх.ххх.ххх.ххх"; //ip удаленного устройства с ОС Windows
shell_exec("net rpc shutdown -f -I $ip_or_host -U '$ip_or_host\login%password'");
- Рейтинг: 1.16%
-
- Сообщения: 125
- Зарегистрирован: Ср дек 26, 2012 8:33 pm
- Откуда: Севастополь
- Благодарил (а): 0
- Поблагодарили: 1 раз
Re: Интеграция Wake On Lan
вот еще нашел статью про удаленное выключение компьютера по сети.
Выключение или перезагрузка компьютеров по сети
Выключение или перезагрузка компьютеров по сети
-
- Сообщения: 289
- Зарегистрирован: Вс сен 16, 2012 9:39 am
- Благодарил (а): 0
- Поблагодарили: 1 раз
Re: Интеграция Wake On Lan
Никак не получается пробудить компьютер при размещении страницы на роутере, кто подскажет в чем может быть ньюанс, из MDM срабатывает, тот же код при размещении на роутере нет, командой из консоли роутера тоже будится, со страницы никак.
-
- Сообщения: 24
- Зарегистрирован: Вт мар 15, 2016 4:39 pm
- Благодарил (а): 1 раз
- Поблагодарили: 3 раза
Re: Интеграция Wake On Lan
День добрый!dmw писал(а):Зачем все выводить в отдельный php?
Я вот в меню сделал кнопку "Включить" с кодом:и кнопку "Выключить" с кодом (сервер на ubuntu):Код: Выделить всё
$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);
Также, как сказал Urbas81, легко и просто можно сделать переключатель с совмещающим в себе эти оба кода и исполнять их то один кусок то другой в зависимости от состояния какойто переменной, например из модуля "Устройства Online".Код: Выделить всё
$ip_or_host ="ххх.ххх.ххх.ххх"; //ip удаленного устройства с ОС Windows shell_exec("net rpc shutdown -f -I $ip_or_host -U '$ip_or_host\login%password'");
Пробую ваш код на включение не срабатывает, сторонней програмой включает с этого же компьютера без проблем, причем достаточно мака, сутки бьюсь. Ткните куда смотреть и что можно проверить. Спасибо.
- Рейтинг: 1.16%
-
- Сообщения: 165
- Зарегистрирован: Чт ноя 13, 2014 8:56 pm
- Благодарил (а): 23 раза
- Поблагодарили: 7 раз
Re: Интеграция Wake On Lan
Для тех, кто прочитав тему до конца так и не понял как выключать комп на Винде удаленно.
1. На компьютере, который хотим выключать. Нажав комбинацию клавиш «Win+R» вводим gpedit.msc
Слева Политика "Локальный компьютер"-«Конфигурация компьютера»-«Конфигурация Windows»-«Параметры безопасности»-«Локальные политики» - «Назначение прав пользователя»-«Принудительное удаленное завершение работы»
Добавляем пользователя, у меня компы в домашней сети, поэтому добавил HomeGroupUser$. если нет домашки, то можно просто Все.
2. Добавляем сценарий, заменив HOST своим:
shell_exec("shutdown -s -f -m \\\HOST -t 60 -d up:125:1");
1. На компьютере, который хотим выключать. Нажав комбинацию клавиш «Win+R» вводим gpedit.msc
Слева Политика "Локальный компьютер"-«Конфигурация компьютера»-«Конфигурация Windows»-«Параметры безопасности»-«Локальные политики» - «Назначение прав пользователя»-«Принудительное удаленное завершение работы»
Добавляем пользователя, у меня компы в домашней сети, поэтому добавил HomeGroupUser$. если нет домашки, то можно просто Все.
2. Добавляем сценарий, заменив HOST своим:
shell_exec("shutdown -s -f -m \\\HOST -t 60 -d up:125:1");
- Рейтинг: 1.16%