view src/magicpacket.go @ 39:523416ca4b83

diet magicpacket.go
author pyon@macmini
date Tue, 04 Feb 2020 21:31:50 +0900
parents 90659c7171ed
children c6df3bae683e
line wrap: on
line source

package main

import (
	"bytes"
	"fmt"
	"net"
	"log"
	"os"
)

func main() {
	if len(os.Args) < 2 {
		fmt.Fprintln(os.Stderr, "magicpacket mac-address1 mac-address2 ...")
		os.Exit(1)
	}
    for _, mac := range os.Args[1:] {
		hw, err := net.ParseMAC(mac)
		if err != nil {
			log.Fatal(err)
		}

		b := [][]byte{bytes.Repeat([]byte{255}, 6), bytes.Repeat([]byte(hw), 16)}
		pkt := bytes.Join(b, nil)

		conn, err := net.Dial("udp", "255.255.255.255:9")
		if err != nil {
			log.Fatal(err)
		}
		defer conn.Close()

		conn.Write(pkt)
	}
}