annotate src/magicpacket.go @ 39:523416ca4b83

diet magicpacket.go
author pyon@macmini
date Tue, 04 Feb 2020 21:31:50 +0900
parents 90659c7171ed
children c6df3bae683e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
33
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
1 package main
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
2
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
3 import (
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
4 "bytes"
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
5 "fmt"
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
6 "net"
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
7 "log"
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
8 "os"
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
9 )
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
10
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
11 func main() {
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
12 if len(os.Args) < 2 {
39
523416ca4b83 diet magicpacket.go
pyon@macmini
parents: 33
diff changeset
13 fmt.Fprintln(os.Stderr, "magicpacket mac-address1 mac-address2 ...")
33
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
14 os.Exit(1)
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
15 }
39
523416ca4b83 diet magicpacket.go
pyon@macmini
parents: 33
diff changeset
16 for _, mac := range os.Args[1:] {
523416ca4b83 diet magicpacket.go
pyon@macmini
parents: 33
diff changeset
17 hw, err := net.ParseMAC(mac)
33
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
18 if err != nil {
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
19 log.Fatal(err)
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
20 }
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
21
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
22 b := [][]byte{bytes.Repeat([]byte{255}, 6), bytes.Repeat([]byte(hw), 16)}
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
23 pkt := bytes.Join(b, nil)
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
24
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
25 conn, err := net.Dial("udp", "255.255.255.255:9")
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
26 if err != nil {
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
27 log.Fatal(err)
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
28 }
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
29 defer conn.Close()
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
30
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
31 conn.Write(pkt)
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
32 }
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
33 }
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
34