35 lines
663 B
Go
35 lines
663 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"encoding/hex"
|
||
|
"fmt"
|
||
|
"net"
|
||
|
"os"
|
||
|
|
||
|
"github.com/docopt/docopt-go"
|
||
|
|
||
|
"github.com/anacrolix/torrent/dht"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
args, _ := docopt.Parse(`dht-secure-id outputs the node ID secured with the IP.
|
||
|
|
||
|
Usage: dht-secure-id <id> <ip>`, nil, true, "", false)
|
||
|
id, err := hex.DecodeString(args["<id>"].(string))
|
||
|
if err != nil {
|
||
|
fmt.Fprintf(os.Stderr, "bad id: %s\n", err)
|
||
|
os.Exit(2)
|
||
|
}
|
||
|
if len(id) != 20 {
|
||
|
fmt.Fprintf(os.Stderr, "bad id: wrong length\n")
|
||
|
os.Exit(2)
|
||
|
}
|
||
|
ip := net.ParseIP(args["<ip>"].(string))
|
||
|
if ip == nil {
|
||
|
fmt.Fprintf(os.Stderr, "bad ip\n")
|
||
|
os.Exit(2)
|
||
|
}
|
||
|
dht.SecureNodeId(id, ip)
|
||
|
fmt.Printf("%x\n", id)
|
||
|
}
|