Skip to content

Instantly share code, notes, and snippets.

@jumar
Last active July 14, 2024 02:42
Show Gist options
  • Save jumar/9200840 to your computer and use it in GitHub Desktop.
Save jumar/9200840 to your computer and use it in GitHub Desktop.
Send magic wol packet java
import java.io.*;
import java.net.*;
public class WakeOnLan {
public static final int PORT = 9;
public static void main(String[] args) {
if (args.length != 2) {
System.out.println("Usage: java WakeOnLan <broadcast-ip> <mac-address>");
System.out.println("Example: java WakeOnLan 192.168.0.255 00:0D:61:08:22:4A");
System.out.println("Example: java WakeOnLan 192.168.0.255 00-0D-61-08-22-4A");
System.exit(1);
}
String ipStr = args[0];
String macStr = args[1];
try {
byte[] macBytes = getMacBytes(macStr);
byte[] bytes = new byte[6 + 16 * macBytes.length];
for (int i = 0; i < 6; i++) {
bytes[i] = (byte) 0xff;
}
for (int i = 6; i < bytes.length; i += macBytes.length) {
System.arraycopy(macBytes, 0, bytes, i, macBytes.length);
}
InetAddress address = InetAddress.getByName(ipStr);
DatagramPacket packet = new DatagramPacket(bytes, bytes.length, address, PORT);
DatagramSocket socket = new DatagramSocket();
socket.send(packet);
socket.close();
System.out.println("Wake-on-LAN packet sent.");
}
catch (Exception e) {
System.out.println("Failed to send Wake-on-LAN packet: + e");
System.exit(1);
}
}
private static byte[] getMacBytes(String macStr) throws IllegalArgumentException {
byte[] bytes = new byte[6];
String[] hex = macStr.split("(\\:|\\-)");
if (hex.length != 6) {
throw new IllegalArgumentException("Invalid MAC address.");
}
try {
for (int i = 0; i < 6; i++) {
bytes[i] = (byte) Integer.parseInt(hex[i], 16);
}
}
catch (NumberFormatException e) {
throw new IllegalArgumentException("Invalid hex digit in MAC address.");
}
return bytes;
}
}
@Shterneregen
Copy link

Hay! Thanks for sharing, your gist saved my time! I re-wrote it in Kotlin service to use in Spring Boot app. Hope it also saves somebody else time!
https://gist.github.com/Shterneregen/14243dcecdad03c068176d9c24eafb59

@kevinturbo867
Copy link

God bless you!

@saguaro3
Copy link

saguaro3 commented Apr 3, 2024

Thank you so much for this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment