Mercurial > mercurial > hgweb_golang.cgi
changeset 40:c6df3bae683e
magicpacket.go: add port option.
author | pyon@macmini |
---|---|
date | Thu, 06 Feb 2020 20:19:20 +0900 |
parents | 523416ca4b83 |
children | 34a474fb83c3 |
files | src/magicpacket.go |
diffstat | 1 files changed, 31 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/src/magicpacket.go Tue Feb 04 21:31:50 2020 +0900 +++ b/src/magicpacket.go Thu Feb 06 20:19:20 2020 +0900 @@ -1,34 +1,40 @@ package main import ( - "bytes" - "fmt" - "net" - "log" - "os" + "bytes" + "flag" + "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) - } + var port int + flag.IntVar(&port, "p", 9, "port") + flag.Parse() + + if flag.NArg() < 1 { + fmt.Fprintln(os.Stderr, "magicpacket mac-address1 mac-address2 ...") + fmt.Fprintln(os.Stderr, "magicpacket port mac-address1 mac-address2 ...") + os.Exit(1) + } + + addr := fmt.Sprintf("255.255.255.255:%d", port) - 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) - } + for _, mac := range flag.Args() { + 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", addr) + if err != nil { + log.Fatal(err) + } + defer conn.Close() + conn.Write(pkt) + } }