# HG changeset patch # User pyon@macmini # Date 1580987960 -32400 # Node ID c6df3bae683e48cc021ddc7d9687bf4c516bffdc # Parent 523416ca4b831eb422a264af19fcc3c99cc95b76 magicpacket.go: add port option. diff -r 523416ca4b83 -r c6df3bae683e src/magicpacket.go --- 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) + } }