main.go 1021 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright (C) 2014 The Syncthing Authors.
  2. //
  3. // This Source Code Form is subject to the terms of the Mozilla Public
  4. // License, v. 2.0. If a copy of the MPL was not distributed with this file,
  5. // You can obtain one at http://mozilla.org/MPL/2.0/.
  6. package main
  7. import (
  8. "flag"
  9. "log"
  10. "os"
  11. "github.com/syncthing/protocol"
  12. "github.com/syncthing/syncthing/internal/discover"
  13. )
  14. func main() {
  15. log.SetFlags(0)
  16. log.SetOutput(os.Stdout)
  17. var server string
  18. flag.StringVar(&server, "server", "udp4://announce.syncthing.net:22026", "Announce server")
  19. flag.Parse()
  20. if len(flag.Args()) != 1 || server == "" {
  21. log.Printf("Usage: %s [-server=\"udp4://announce.syncthing.net:22026\"] <device>", os.Args[0])
  22. os.Exit(64)
  23. }
  24. id, err := protocol.DeviceIDFromString(flag.Args()[0])
  25. if err != nil {
  26. log.Println(err)
  27. os.Exit(1)
  28. }
  29. discoverer := discover.NewDiscoverer(protocol.LocalDeviceID, nil)
  30. discoverer.StartGlobal([]string{server}, 1)
  31. for _, addr := range discoverer.Lookup(id) {
  32. log.Println(addr)
  33. }
  34. }