Advertisement
Guest User

Untitled

a guest
Aug 27th, 2015
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. // Send Wake On LAN Magic Packet
  2.  
  3. def int PORT = 9
  4.  
  5. def cli = new CliBuilder()
  6. cli.h(longOpt: 'help', 'usage information')
  7. cli.i(argName: 'networkInterface', longOpt: 'interface', args: 1, required: true, 'MAC address of network interface(IPv4)')
  8. cli.b(argName: 'broadcast', longOpt: 'broadcast', args: 1, required: true, 'Broadcast address')
  9.  
  10. def opt = cli.parse(args)
  11. if (!opt) return
  12. if (opt.h) cli.usage()
  13.  
  14. // Read MAC address
  15. String mac = opt.i.replaceAll("-", "").replaceAll(":", "")
  16. byte[] macBytes = new byte[6]
  17. for (pos in 0..5) {
  18. macBytes[pos] = Integer.valueOf(mac.substring(pos*2,pos*2+2), 16)
  19. }
  20. // Construct packet data
  21. byte[] data = new byte[6 + 16 * 6]
  22. for (i in 0..5) {
  23. data[i] = 0xff
  24. }
  25. for (i in 1..16) {
  26. System.arraycopy(macBytes, 0, data, i * 6, 6)
  27. }
  28.  
  29. // Send packet
  30. InetAddress address = InetAddress.getByName(opt.b)
  31. DatagramPacket packet = new DatagramPacket(data, data.length, address, PORT)
  32. DatagramSocket socket = new DatagramSocket()
  33. socket.send(packet)
  34. socket.close()
  35.  
  36. println "Wake-on-LAN packet sent."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement