Wake On Lan in Common Lisp
Back in the 90s IBM and Intel got together and came up with a technology that is able to power on remote systems on the network by sending a special packet known as the magic packet.
This technology is now known as Wake on Lan (WoL).
You can find various implementations of Wake On Lan in different languages, e.g. C, Python, Go, Rust, etc.
However, there was no implementation of WoL in Common Lisp, so I’ve decided to implement one. The cl-wol repo provides three Common Lisp systems:
cl-wol.core
- provides the core functionallity for powering on remote systems using Wake on LAN (WoL) by broadcasting a magic packet to a destination port and address.cl-wol.test
- provides the test suite forcl-wol.core
cl-wol.cli
- provides a command-line interface application, built on top ofcl-wol.core
, which comes with support for looking up hosts and their MAC addresses from a local SQLite database.
Note, that if you are building the command-line application provided
by cl-wol.cli
you will also need a recent version of
clingon, because at the time of
writing this the clingon
system is not the latest one you will find
in Quicklisp.
And here’s a demo of the command-line application provided by the
cl-wol.cli
system.
Make sure to check the cl-wol repo for additional examples and information.