Есть ли команда терминала в Mac OSX, которая позволит мне использовать WOL (Wake On LAN) для пробуждения других компьютеров? В Windows есть wolcmd, есть ли аналог в OSX?
Я пытаюсь разбудить компьютер из моего rMBP в своей сети. Мой rMBP обычно подключается через WiFi, но также может быть подключен через разъем Thunderbolt GbE. Целевой компьютер — это машина с Windows, которую я хочу разбудить перед подключением к ней с помощью подключения к удаленному рабочему столу.
Установите пакет 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
.
Команду 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-адрес должен быть широковещательным адресом сети.
Для легкого доступа вы можете сделать этот скрипт исполняемым и добавить его в какой-нибудь каталог на вашем пути.
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 , но у меня он не установлен, я не могу его проверить.
Извинения: пока не могу проголосовать за «@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
Рускес
Марк Томлин
-bash: /Users/Dygear/bin/wakeonlan: No such file or directory
.