This software provides a way to wake (via wake-on-lan) machines on a remote network.
After making my home PC accessible externally via Dynamic DNS, I needed a way to remotely power it on and off, since leaving it on 24/7 would run up a large energy bill. I took one of my (many) Raspberry Pi computers and set up a script to log the MAC addresses of all machines detected on the network, along with corresponding IP addresses and hostnames. This script runs periodically as a cron job, providing a list of machines by name or last known IP, and their associated MAC addresses.
A web interface allows any PC from this database to be chosen, and for a wake-on-lan magic packet to be dispatched to it. Provided the PC is connected to the network via an ethernet cable and wake-on-lan is enabled on the associated adapter, the end result is that the chosen PC will turn on in response to me clicking a button in my web browser from 40 miles away.
The PC must be wired into the network in order to receive wake-on-lan packets, but there can be wireless links between the router/switch that the PC is wired to and the Raspberry Pi. Wake-on-LAN magic packets are sent as UDP broadcasts in my script, although they could be in any type of container that will get routed to the target PC’s ethernet port.
Download: Remote Wake-on-LAN, MAC database scripts and web interface
Latest version (github): battlesnake/macs