Разбудить другие компьютеры из Mac OSX

Есть ли команда терминала в Mac OSX, которая позволит мне использовать WOL (Wake On LAN) для пробуждения других компьютеров? В Windows есть wolcmd, есть ли аналог в OSX?

Я пытаюсь разбудить компьютер из моего rMBP в своей сети. Мой rMBP обычно подключается через WiFi, но также может быть подключен через разъем Thunderbolt GbE. Целевой компьютер — это машина с Windows, которую я хочу разбудить перед подключением к ней с помощью подключения к удаленному рабочему столу.

$ ~/bin/wakeonlan сервер-mac-адрес-здесь
@Buscar, на моем Mac (OS X 10.8.4) я получаю -bash: /Users/Dygear/bin/wakeonlan: No such file or directory.

Ответы (7)

Установите пакет wakeonlan с помощью Homebrew :

$ brew install wakeonlan

(Это Perl-скрипт для пробуждения компьютеров с помощью магических пакетов Wake-On-LAN.)

После установки вы можете отправить «волшебный пакет» со своего терминала на любое устройство, используя его IP-адрес (интернет-протокол) и MAC-адрес (управление доступом к среде).

Вот пример типичного использования:

$ wakeonlan -i 192.168.1.255 -p 1234 01:02:03:04:05:06

Сценарий принимает 2 аргумента: MAC-адрес сетевой карты и IP-адрес.

Примечание. Аргумент IP-адреса сложен, и это не то, что вы могли бы подумать.

Для сетевого адаптера в вашей локальной подсети используйте широковещательный адрес этой подсети. (например, подсеть 192.168.10.0 с маской сети 255.255.255.0, используйте 192.168.10.255)

Например, у меня есть Synology NAS, настроенный вручную на IP-адрес 10.0.1.100с маской подсети 255.255.255.0и адресом маршрутизатора 10.0.1.1.

Правильный IP-адрес — это не адрес устройства , а широковещательный адрес подсети .

Продолжая мой пример, я использовал следующую команду для успешного пробуждения Synology:

$ wakeonlan -i 10.0.1.255 -p 7 01:02:03:04:05:06

(Естественно, замените фактические значения вашего устройства и сети для вашей ситуации.)

Дополнительную информацию можно получить на справочной странице wakeonlan man wakeonlanили в кратком глоссарии команд из wakeonlan -h.

Я где-то читал, что он выведет ваш Mac только из спящего режима, а не тогда, когда он полностью отключится. И, возможно, он также работает только в локальной сети, а не в беспроводной сети.
это должен быть принятый ответ. Ура человек
Мой широковещательный адрес не так ясен, как показывает ваш пример, поэтому я использовал этот сайт для определения: remotemonitoringsystems.ca/broadcast.php
Можно ли это использовать, чтобы разбудить компьютер после выключения? Это не так. Можно ли запустить компьютер из холодной загрузки, отправив волшебный пакет? Apple Remote Desktop уже может вывести компьютер из спящего режима.
@MarkTomlin Вы просили ввести команду командной строки, это правильный ответ.
Несколько лет спустя, как и сейчас, я принял это как правильный ответ, поскольку он явно есть.

Команду wakeonlanдля командной строки можно добавить в OS X с помощью менеджера пакетов homebrew .

Python поставляется с OS X по умолчанию. Таким образом, вы можете использовать этот небольшой скрипт Python 2 для отправки пакета пробуждения по локальной сети. Сохраните его как wakeonlan.pyили как вам больше нравится:

#!/usr/bin/env python

import socket
import sys

if len(sys.argv) < 3:
    print "Usage: wakeonlan.py <ADR> <MAC>     (example: 192.168.1.255 00:11:22:33:44:55)"
    sys.exit(1)

mac = sys.argv[2]
data = ''.join(['FF' * 6, mac.replace(':', '') * 16])
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(data.decode("hex"), (sys.argv[1], 9))

Используйте это так:

python wake.py 192.168.1.255 00:11:22:33:44:55

Соответственно измените IP-адрес и MAC-адрес. IP-адрес должен быть широковещательным адресом сети.

Для легкого доступа вы можете сделать этот скрипт исполняемым и добавить его в какой-нибудь каталог на вашем пути.

Мне нравится это решение без установки!
MacOS теперь использует python3 по умолчанию

wolcmd доступен для Mac: http://www.depicus.com/wake-on-lan/wake-on-lan-for-apple-mac.aspx

Версия с графическим интерфейсом за 1,99 доллара, терминальная версия бесплатна. Использование точно такое же, как и у его аналога для Windows.

Рад, что смог помочь :)
Зачем загружать неподписанный непрозрачный двоичный файл с какого-то случайного веб-сайта, если вы можете просто использовать программу с открытым исходным кодом в ответе ниже?

Пакет RubyGems, который есть на Mac, также можно использовать для установки приложения пробуждения по локальной сети. Просто используйте gem install wolкоманду в терминале. Он установит активность в /usr/bin/local/wol.

Это позволяет избежать установки варева или менеджеров пакетов. Он принимает те же аргументы, что и приведенные выше примеры wakeonlan.

Кроме того, инструмент wol может разбудить правильно настроенный Synology NAS.

Как это gemне менеджер пакетов тоже?

Вероятно, его можно установить и через менеджер пакетов MacPorts , но у меня он не установлен, я не могу его проверить.

WakeOnLan является частью MacPorts, см. macports.org/ports.php?by=name&substr=wakeonlan .

Извинения: пока не могу проголосовать за «@JP Petersen» или прокомментировать (не набрали достаточно баллов), поэтому придется ответить (поздно).

@lacy теперь корректен для Python3, но скрипту действительно нужен был какой-то мод, так что вот что сработало для меня (поскольку .decode больше не python3, и нам нужен MAC-адрес, похожий на байты; также сначала обратите внимание на упрощенный код и MAC-адрес аргумент, без двоеточий); тот же широковещательный адрес (не IP-адрес):

$ пико wakeonlan3.py

#!/usr/bin/env python
import socket
import sys
mac = bytes(sys.argv[1], 'utf-8')
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(mac, (sys.argv[2], 9))

$ chmod 775 wakeonlan3.py

$ python3 wakeonlan3.py 001451e6f3d1 192.168.0.255