Mac OSX中是否有一个终端命令,该命令可以让我使用WOL(局域网唤醒)来唤醒其他计算机?Windows具有wolcmd,在OSX中是否具有等效功能?
我正在尝试从网络中的rMBP唤醒计算机。我的rMBP通常通过WiFi连接,但也可以通过Thunderbolt GbE连接器连接。目标计算机是Windows计算机,我想在使用远程桌面连接连接到它之前将其唤醒。
-bash: /Users/Dygear/bin/wakeonlan: No such file or directory
。
Mac OSX中是否有一个终端命令,该命令可以让我使用WOL(局域网唤醒)来唤醒其他计算机?Windows具有wolcmd,在OSX中是否具有等效功能?
我正在尝试从网络中的rMBP唤醒计算机。我的rMBP通常通过WiFi连接,但也可以通过Thunderbolt GbE连接器连接。目标计算机是Windows计算机,我想在使用远程桌面连接连接到它之前将其唤醒。
-bash: /Users/Dygear/bin/wakeonlan: No such file or directory
。
Answers:
$ brew install wakeonlan
(这是一个Perl脚本,用于通过“局域网唤醒”魔术包唤醒计算机。)
安装后,您可以使用其IP(互联网协议)和MAC(媒体访问控制)地址将“魔术包”从终端发送到任何设备。
这是典型用法的示例:
$ wakeonlan -i 192.168.1.255 -p 1234 01:02:03:04:05:06
脚本采用2个参数,即NIC的MAC地址和IP地址。
注意:IP地址参数很棘手,不是您想的那样。
对于本地子网上的NIC,请使用该子网上的广播地址。(例如,子网掩码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地址不是设备的 IP地址,而是子网的广播地址。
继续我的示例,我使用以下命令成功唤醒了Synology:
$ wakeonlan -i 10.0.1.255 -p 7 01:02:03:04:05:06
(自然,用您的设备和网络的实际值代替您的情况。)
您可以从wakeonlan手册页中获取更多信息man makeonlan
,或者从中获取命令的快速词汇表wakeonlan -h
。
默认情况下,Python随附OSX。因此,您可以使用此小型Python 2脚本发送lan唤醒包。将其另存为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地址应该是网络的广播地址。
为了便于访问,您可以使该脚本可执行,并将其添加到路径中的某个目录中。
也可能也可以通过MacPorts软件包管理器进行安装,但是我没有安装它,无法对其进行测试。