annotate src/magicpacket.go @ 56:7396e7407abd

searcher version up.
author pyon@macmini
date Sat, 27 Jun 2020 16:25:13 +0900
parents c6df3bae683e
children
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 (
40
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
4 "bytes"
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
5 "flag"
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
6 "fmt"
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
7 "net"
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
8 "log"
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
9 "os"
33
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
10 )
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
11
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
12 func main() {
40
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
13 var port int
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
14 flag.IntVar(&port, "p", 9, "port")
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
15 flag.Parse()
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
16
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
17 if flag.NArg() < 1 {
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
18 fmt.Fprintln(os.Stderr, "magicpacket mac-address1 mac-address2 ...")
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
19 fmt.Fprintln(os.Stderr, "magicpacket port mac-address1 mac-address2 ...")
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
20 os.Exit(1)
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
21 }
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
22
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
23 addr := fmt.Sprintf("255.255.255.255:%d", port)
33
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
24
40
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
25 for _, mac := range flag.Args() {
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
26 hw, err := net.ParseMAC(mac)
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
27 if err != nil {
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
28 log.Fatal(err)
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
29 }
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
30 b := [][]byte{bytes.Repeat([]byte{255}, 6), bytes.Repeat([]byte(hw), 16)}
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
31 pkt := bytes.Join(b, nil)
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
32 conn, err := net.Dial("udp", addr)
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
33 if err != nil {
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
34 log.Fatal(err)
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
35 }
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
36 defer conn.Close()
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
37 conn.Write(pkt)
c6df3bae683e magicpacket.go: add port option.
pyon@macmini
parents: 39
diff changeset
38 }
33
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
39 }
90659c7171ed add magicpacket.go
pyon@macmini
parents:
diff changeset
40