Mercurial > mercurial > hgweb_golang.cgi
comparison src/magicpacket.go @ 33:90659c7171ed
add magicpacket.go
| author | pyon@macmini |
|---|---|
| date | Tue, 13 Aug 2019 19:55:10 +0900 |
| parents | |
| children | 523416ca4b83 |
comparison
equal
deleted
inserted
replaced
| 32:efa8836fd428 | 33:90659c7171ed |
|---|---|
| 1 package main | |
| 2 | |
| 3 import ( | |
| 4 "bytes" | |
| 5 "fmt" | |
| 6 "net" | |
| 7 "log" | |
| 8 "os" | |
| 9 ) | |
| 10 | |
| 11 func main() { | |
| 12 if len(os.Args) < 2 { | |
| 13 fmt.Fprintln(os.Stderr, "wol mac-address1 mac-address2 ...") | |
| 14 os.Exit(1) | |
| 15 } | |
| 16 for i, m := range os.Args { | |
| 17 if i == 0 { | |
| 18 continue | |
| 19 } | |
| 20 hw, err := net.ParseMAC(m) | |
| 21 if err != nil { | |
| 22 log.Fatal(err) | |
| 23 } | |
| 24 | |
| 25 b := [][]byte{bytes.Repeat([]byte{255}, 6), bytes.Repeat([]byte(hw), 16)} | |
| 26 pkt := bytes.Join(b, nil) | |
| 27 | |
| 28 conn, err := net.Dial("udp", "255.255.255.255:9") | |
| 29 if err != nil { | |
| 30 log.Fatal(err) | |
| 31 } | |
| 32 defer conn.Close() | |
| 33 | |
| 34 conn.Write(pkt) | |
| 35 } | |
| 36 } | |
| 37 |
