How to send a magic packet from OS X in order to wake a PC on the LAN? (WOL)

Solution 1:

Try WakeOnLan or wol — both are open source, both are available through MacPorts (and possibly through Homebrew as well).

Solution 2:

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.