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)
+    }
 }