wol.sh 474 B

123456789101112131415161718192021222324
  1. #!/bin/bash
  2. # We need the target MAC and broadcast addresses
  3. ETHER="${1}"
  4. BCAST="${2}"
  5. if [ -z "${ETHER}" ] || [ -z "${BCAST}" ]; then
  6. echo "Usage: ${0} MAC broadcast" 1>&2
  7. exit 1
  8. fi
  9. # UDP needs a port
  10. PORT=7
  11. # Construct the packet
  12. RAW="`echo "${ETHER}" | sed 's/://g'`"
  13. PACKET="FFFFFFFFFFFF"
  14. i=0
  15. while [ $i -lt 16 ]; do
  16. PACKET="${PACKET}${RAW}"
  17. i=$(( $i + 1 ))
  18. done
  19. # Send with socat
  20. echo "${PACKET}" | xxd -r -p | socat - "UDP-DATAGRAM:${BCAST}:${PORT},broadcast"