Mercurial > mercurial > hgweb_golang.cgi
view src/magicpacket.go @ 65:0369656be06c default tip
many changes.
author | pyon@macmini |
---|---|
date | Fri, 20 May 2022 06:30:34 +0900 |
parents | c6df3bae683e |
children |
line wrap: on
line source
package main import ( "bytes" "flag" "fmt" "net" "log" "os" ) func main() { 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) 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) } }