Guest User

Untitled

a guest
Apr 22nd, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. import java.net.DatagramPacket;
  2. import java.net.DatagramSocket;
  3. import java.net.InetAddress;
  4.  
  5. /**
  6. * sendet einen WakeOnLan Befehl über das Netzwerk
  7. */
  8. public class WakeOnLan {
  9.  
  10. /**
  11. * Broadcast Port
  12. */
  13. public static final int PORT = 9;
  14.  
  15. /**
  16. * sendet einen WakeOnLan Befehl über das Netzwerk
  17. *
  18. * @param broadcastAddress Broadcastadresse des Subnetzes
  19. * @param macAddress MAC Adresse
  20. * @return
  21. */
  22. public static boolean send(String broadcastAddress, String macAddress) {
  23.  
  24. try {
  25. byte[] macBytes = getMacBytes(macAddress);
  26. byte[] bytes = new byte[6 + 16 * macBytes.length];
  27. for (int i = 0; i < 6; i++) {
  28. bytes[i] = (byte) 0xff;
  29. }
  30. for (int i = 6; i < bytes.length; i += macBytes.length) {
  31. System.arraycopy(macBytes, 0, bytes, i, macBytes.length);
  32. }
  33.  
  34. InetAddress address = InetAddress.getByName(broadcastAddress);
  35. DatagramPacket packet = new DatagramPacket(bytes, bytes.length, address, PORT);
  36. DatagramSocket socket = new DatagramSocket();
  37. socket.send(packet);
  38. socket.close();
  39. return true;
  40. }
  41. catch (Exception e) {
  42. return false;
  43. }
  44. }
  45.  
  46. /**
  47. * wandelt die MAC Adresse aus einem String in ein Byte Array um
  48. *
  49. * @param macStr MAC Adresse
  50. * @return Byte Array der MAC Adresse
  51. */
  52. private static byte[] getMacBytes(String macStr) throws IllegalArgumentException {
  53. byte[] bytes = new byte[6];
  54. String[] hex = macStr.split("(\\:|\\-)");
  55. if (hex.length != 6) {
  56. throw new IllegalArgumentException("Invalid MAC address.");
  57. }
  58. try {
  59. for (int i = 0; i < 6; i++) {
  60. bytes[i] = (byte) Integer.parseInt(hex[i], 16);
  61. }
  62. }
  63. catch (NumberFormatException e) {
  64. throw new IllegalArgumentException("Invalid hex digit in MAC address.");
  65. }
  66. return bytes;
  67. }
  68. }
Add Comment
Please, Sign In to add comment