39

Is there a terminal command within Mac OSX that will allow me to use WOL (Wake On LAN) to wake up other computers? Windows has wolcmd, is there an equivalent within OSX?

I am trying to wake a computer from my rMBP, within my network. My rMBP is connected via WiFi normally, but can also be connected via Thunderbolt GbE connector. The target computer is a Windows machine that I want to wake up before I connect to it using a remote desktop connection.

  • $ ~/bin/wakeonlan server-mac-address-here – Ruskes Jun 30 '13 at 7:35
  • @Buscar, On my mac (OS X 10.8.4), I get -bash: /Users/Dygear/bin/wakeonlan: No such file or directory. – Mark Tomlin Jun 30 '13 at 10:11
3

wolcmd is available for Mac: http://www.depicus.com/wake-on-lan/wake-on-lan-for-apple-mac.aspx

GUI version for $1.99, terminal version is free. Usage is just the same as its Windows counterpart.

  • Glad I could help :) – b4d Jun 30 '13 at 10:56
  • 2
    Why download an unsigned opaque binary from some random web site, when you could just use the open-source program in the answer below? – ruief Jan 11 '18 at 8:02
54

The wakeonlan command for command-line can be added to OS X using the homebrew package manager.

49

Install the wakeonlan package using Homebrew:

$ brew install wakeonlan

(It's a Perl script for waking up computers via Wake-On-LAN magic packets.)

When installed, you can send a "magic packet" from your Terminal to any device using its IP (Internet Protocol) and MAC (Media Access Control) address.

Here's an example of a typical use:

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

The scripts takes 2 arguments, the MAC address of the NIC, and an IP address.

Note: The IP address argument is tricky and isn't what you'd think.

For a NIC on your local subnet, use the broadcast-address of this subnet. (e.g. subnet 192.168.10.0 with netmask 255.255.255.0, use 192.168.10.255)

For example, I have a Synology NAS manually configured with the IP address of 10.0.1.100 with a subnet mask of 255.255.255.0 and a router address of 10.0.1.1.

The correct IP address to use is not that of the device, but instead the broadcast-address of the subnet.

Continuing on my example, I used the following command to successfully wake up my Synology:

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

(Naturally, substitute the actual values of your device and network for your situation.)

You can get more information from the wakeonlan man page, man makeonlan, or a quick glossary of commands from wakeonlan -h.

  • I read somewhere, that it will only wake your mac from sleep, and not when it completely powered off. And maybe it also only works on LAN, not WLAN. – d4Rk Sep 11 '16 at 15:54
  • 1
    this should be the accepted answer. Cheers man – spacebiker Apr 7 '17 at 19:39
  • My broadcast-address isn't as clear as your example shows, so I used this site to determine: remotemonitoringsystems.ca/broadcast.php – Samuel Li Sep 29 '17 at 19:03
  • Can this be used to wake a computer up from shutdown? It doesn't seem so. Is it possible to WOL a computer from cold boot by sending the magic packet? Apple Remote Desktop can already wake a computer up from sleep. – SwimBikeRun Nov 1 '17 at 18:43
  • 1
    @MarkTomlin You asked for command line command, this is the correct answer. – Ulises Layera Nov 6 '18 at 19:35
5

Python comes with OS X per default. So you could use this small Python 2 script to send the wake on lan package. Save it as wakeonlan.py or something you like:

#!/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))

Use it like this:

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

Modify the IP address and MAC address accordingly. The IP address should be the broadcast address of the network.

For easy access you could make this script executable and add it to some directory in your path.

  • 1
    I like this solution with no installation required! – Samuel Li Sep 29 '17 at 18:30
0

It's probably possible to be installed through the MacPorts package manager as well, but I don't have it installed, can't test it.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .