Jump to content

WOL add on?


Recommended Posts

If you know java you could modify this code and create your own:

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class WakeOnLan {
   public static final int PORT = 9;
   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;
   }
   public static void wol(String ipStr, String macStr) {
       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);
           }

           int index = ipStr.lastIndexOf('.');
           String broadcast = ipStr.substring(0, index);
           InetAddress address = InetAddress.getByName(broadcast + ".255");
           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 to " + macStr);
       } catch (Exception e) {
           System.out.println("Failed to send Wake-on-LAN packet:" + e.getMessage());
           System.exit(1);
       }
   }
   private WakeOnLan() {
   }
}

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...