A lightweight 100KB Wake-on-LAN (WOL) utility that supports Win95 to Win11, written in pure C using the native Win32 API.
Allows you to manage a list of computers, check their online status via ICMP or TCP, and wake them up using Magic Packets.
-
Native & Fast: Built with pure Win32 API and Winsock. No heavy frameworks, no .NET requirements, and a microscopic binary size.
-
Status Checking: Built-in reachability testing using ICMP (Ping) and TCP Port 445 (SMB) to verify if a machine is already awake.
-
Auto-Check: No refresh / 1 sec. / 2 sec.
-
Contact Management: Save, edit, and remove hosts. Data is persisted in a portable
wol_contacts.inifile. -
Batch Actions: Select multiple entries to wake or check status simultaneously.
-
Import/Export: Easily move your contact list between machines using the built-in INI import/export functions.
-
Tiny Footprint: Highly optimized for size, targeting compatibility back to older i386 architectures. 100KB size.
The project is designed to be compiled with MinGW/GCC. The following flags are used to strip unnecessary bloat and optimize for the smallest possible executable size.
-
Prerequisites:
-
Compile
- To compile the source (assuming you have a
resources.ofor the application icon):
gcc wol_sender.c resources.o -o wolsender.exe -mwindows -Os -s -march=i386 -mno-sse -mno-sse2 -ffunction-sections -fdata-sections "-Wl,--gc-sections" -lwsock32 -lcomdlg32 -lcomctl32 -lshell32 - To compile the source (assuming you have a
-
Compress (Optional)
- To further shrink the binary, use UPX with LZMA compression:
upx.exe --best --lzma wolsender.exe
- OS: Windows (95 or newer)
- Network: Wake-On-Lan (Magic Packets) must be enabled in the target computer's BIOS/UEFI and Network Adapter settings.
This project is open-source. Feel free to fork, modify, and use it for your own networking needs.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
Distributed under the MIT License. See LICENSE file for more information.


