Не требует установки программ или изменения файлов
Модераторы: immortal, newz20
-
Alex
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
-
Благодарил (а):
42 раза
-
Поблагодарили:
262 раза
Сообщение
Alex » Пт мар 29, 2013 6:48 pm
Понятно. Этот вопрос я как нибудь решу. А в общем, нас можно поздравить — теперь мы умеем включать и выключать компьютеры в локальной сети. И это реально круто.
Следующий шаг — как бы поуправлять компьютером в сети. Например, по команде из МДМ запустить программу или скопировать файл на сетевом компьютере?
- За это сообщение автора Alex поблагодарил:
- димон устин (Ср янв 03, 2018 12:09 am)
-
anemcov
- Сообщения: 211
- Зарегистрирован: Вт янв 08, 2013 11:50 pm
- Откуда: Санкт-Петербург
-
Благодарил (а):
0
-
Поблагодарили:
6 раз
Сообщение
anemcov » Пт мар 29, 2013 8:36 pm
Есть такая штука для Винды - telnet.
Но там только файловые операции легко даются.
Надо что-то сторонее искать.
-
Stealth
- Сообщения: 1
- Зарегистрирован: Ср апр 17, 2013 12:09 pm
-
Благодарил (а):
0
-
Поблагодарили:
2 раза
Сообщение
Stealth » Ср апр 17, 2013 12:25 pm
Усовершенствовал код, приведённый в начале топика: подправил дизайн, причесал, вычистил мусор, ссылка для быстрого включения теперь появляется в адресной строке браузера, скрипт не привязан к имени файла скрипта, и для надежности он шлёт сразу 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>
Ссылка для быстрого включения компьютера в дальнейшем находится в адресной строке браузера");
}
?>
- За это сообщение автора Stealth поблагодарили (всего 2):
- Amarok (Пн окт 17, 2016 6:33 am) • gfyz (Чт ноя 24, 2016 1:00 pm)
-
Urbas81
- Сообщения: 289
- Зарегистрирован: Вс сен 16, 2012 9:39 am
-
Благодарил (а):
0
-
Поблагодарили:
1 раз
Сообщение
Urbas81 » Ср апр 17, 2013 12:39 pm
А я воспользовавшись кодом внедрил включение через WOL прямо в интерфейс MDM, у меня есть возможность дистанционно включать 2 компьютера, вот их маки я и забил жестко в код, и теперь только через selectbox выбираю имя и нажимаю кнопку Send. Хотел такую страницу поместить на роутер, но компьютеры почему-то не включались, хотя прав наставил по максимуму.
-
dmw
- Сообщения: 469
- Зарегистрирован: Вт мар 12, 2013 1:22 am
-
Благодарил (а):
41 раз
-
Поблагодарили:
81 раз
Сообщение
dmw » Ср апр 17, 2013 12:51 pm
Зачем все выводить в отдельный 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".
- За это сообщение автора dmw поблагодарил:
- gfyz (Вс дек 04, 2016 12:09 pm)
-
Urbas81
- Сообщения: 289
- Зарегистрирован: Вс сен 16, 2012 9:39 am
-
Благодарил (а):
0
-
Поблагодарили:
1 раз
Сообщение
Urbas81 » Вт апр 23, 2013 11:54 am
Никак не получается пробудить компьютер при размещении страницы на роутере, кто подскажет в чем может быть ньюанс, из MDM срабатывает, тот же код при размещении на роутере нет, командой из консоли роутера тоже будится, со страницы никак.
-
chuk3
- Сообщения: 24
- Зарегистрирован: Вт мар 15, 2016 4:39 pm
-
Благодарил (а):
1 раз
-
Поблагодарили:
3 раза
Сообщение
chuk3 » Сб мар 19, 2016 11:03 am
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".
День добрый!
Пробую ваш код на включение не срабатывает, сторонней програмой включает с этого же компьютера без проблем, причем достаточно мака, сутки бьюсь. Ткните куда смотреть и что можно проверить. Спасибо.
- За это сообщение автора chuk3 поблагодарил:
- gfyz (Вс дек 04, 2016 1:13 pm)
-
Sat
- Сообщения: 25
- Зарегистрирован: Пт авг 07, 2015 5:08 pm
-
Благодарил (а):
2 раза
-
Поблагодарили:
3 раза
Сообщение
Sat » Сб мар 26, 2016 10:18 pm
*fixed*
-
Zaezd2008
- Сообщения: 165
- Зарегистрирован: Чт ноя 13, 2014 8:56 pm
-
Благодарил (а):
23 раза
-
Поблагодарили:
7 раз
Сообщение
Zaezd2008 » Чт апр 07, 2016 3:52 pm
Для тех, кто прочитав тему до конца так и не понял как выключать комп на Винде удаленно.
1. На компьютере, который хотим выключать. Нажав комбинацию клавиш «Win+R» вводим gpedit.msc
Слева Политика "Локальный компьютер"-«Конфигурация компьютера»-«Конфигурация Windows»-«Параметры безопасности»-«Локальные политики» - «Назначение прав пользователя»-«Принудительное удаленное завершение работы»
Добавляем пользователя, у меня компы в домашней сети, поэтому добавил HomeGroupUser$. если нет домашки, то можно просто Все.
2. Добавляем сценарий, заменив HOST своим:
shell_exec("shutdown -s -f -m \\\HOST -t 60 -d up:125:1");
- За это сообщение автора Zaezd2008 поблагодарил:
- gfyz (Чт ноя 24, 2016 1:02 pm)