annotate src/magicpacket.go @ 37:43adde439537

ver.up: gf.go
author pyon@macmini
date Tue, 26 Nov 2019 21:04:22 +0900
parents 90659c7171ed
children 523416ca4b83
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 {
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
13 fmt.Fprintln(os.Stderr, "wol mac-address1 mac-address2 ...")
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
14 os.Exit(1)
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
15 }
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
16 for i, m := range os.Args {
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
17 if i == 0 {
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
18 continue
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
19 }
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
20 hw, err := net.ParseMAC(m)
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
21 if err != nil {
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
22 log.Fatal(err)
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
23 }
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
24
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
25 b := [][]byte{bytes.Repeat([]byte{255}, 6), bytes.Repeat([]byte(hw), 16)}
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
26 pkt := bytes.Join(b, nil)
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
27
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
28 conn, err := net.Dial("udp", "255.255.255.255:9")
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
29 if err != nil {
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
30 log.Fatal(err)
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
31 }
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
32 defer conn.Close()
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
33
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
34 conn.Write(pkt)
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
35 }
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
36 }
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
37