z

BLOG ARTICLE WOL | 1 ARTICLE FOUND

  1. 2008.04.21 WOL Magic Packet Using Java


public static void sendWOLMagicPacket(String addrMac, String addrBroadcast, int port)
 throws UnknownHostException, SocketException,
 IOException, IllegalArgumentException{

  //packet[0~5] = 0xFF
  //packet[6~90] = mac[0]mac[1]mac[2]mac[3]mac[4]mac[5]mac[0]mac[1]mac[2]...
 
  byte[] mac  = new byte[6];
  String[] octet = addrMac.split("(\\:|\\-)");
 
  if (octet.length != 6) {
   throw new IllegalArgumentException("Invalid MAC address.");
  }
 
  for (int i = 0; i < 6; i++) {
   mac[i] = (byte) Integer.parseInt(octet[i], 16);
  }
     
  byte[] packet = new byte[6 + 16 * mac.length];
 
  for (int i = 0; i < 6; i++)
  packet[i] = (byte) 0xff;
 
  for (int i = 6; i < packet.length; i += mac.length)
   System.arraycopy(mac, 0, packet, i, mac.length);
 
  InetAddress group = InetAddress.getByName(addrBroadcast);

  DatagramSocket s = null;
 
  try
  {
   s = new DatagramSocket();
   
   DatagramPacket dgram = new DatagramPacket(packet, packet.length, group, port);
 
   s.send(dgram);
  }finally{
   
   if( s != null)
    s.close();
  }
 }

AND