Blogger templates

Comunidade java aberto - Participe da nossa comunidade no facebook (clique aqui)

Visitas

terça-feira, 31 de julho de 2012

Ligar computador pela rede (WOL)

,

WAKE ON LAN

É uma função que pode ser usada para ligar um computador através da rede, através de um
comando dentro do seu programa.
Para isso é necessário ter alguns dados do computador que vai ser ligado.

É necessário saber o IP e o Endereço MAC.

Para obter esses dados, vá até o pc e no prompt de comando digite ipconfig /all
Anote o endress ip e o mac adress.

Caso mesmo assim não funcionar, ative a opção WOL da sua placa mãe para True
Entre no boot e econtre a opção WOL e marque como ligado. (Wake onBoard Lan)

Pronto !
=]

Obs.: Algumas placas mães por serem antigas não terá a opção wol no boot e por isso nao irá funcionar.
Acredito que de 2005 em diante funciona.. (testei) ;]

---

  1. import java.io.*;
    import java.net.*; 

    public class WakeOnLan {

    public void WOL() {final int PORT = 9;

    //Dados da maquina que vai ser ligada via rede
    String ipStr = "10.11.12.123"; //Aqui é o IP da maquina
    String macStr = "00:07:E9:93:18:EB"; //Aqui é o Endereço MAC

    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("Comando WOL enviado");


    }catch (Exception e) { 
    System.out.println("Falha ao enviar comando " + e);

    System.exit(1); } 



    private static byte[] getMacBytes(String macStr) throwsIllegalArgumentException {byte[] bytes = new byte[6];


    String[] hex = macStr.split("(\\:|\\-)");


    if (hex.length != 6) {

    throw new IllegalArgumentException("Endereço MAC inválido");

    }


    try (for (int i = 0; i < 6; i++) {

    bytes[i] = (byte) Integer.parseInt(hex[i], 16);

    }catch (NumberFormatException e) {

    throw new IllegalArgumentException("Endereço Hexadecimal MAC inválido");

    }

    return bytes;

     }

    }

É isso ai.

;]

0 comentários to “Ligar computador pela rede (WOL)”

Postar um comentário

Insira seu comentário

 

Java Aberto Copyright © 2011 -- Template created by O Pregador -- Powered by Blogger