func main() { log.SetFlags(0) log.SetOutput(os.Stdout) var server string flag.StringVar(&server, "server", "udp4://announce.syncthing.net:22026", "Announce server") flag.Parse() if len(flag.Args()) != 1 || server == "" { log.Printf("Usage: %s [-server=\"udp4://announce.syncthing.net:22026\"] <device>", os.Args[0]) os.Exit(64) } id, err := protocol.DeviceIDFromString(flag.Args()[0]) if err != nil { log.Println(err) os.Exit(1) } discoverer := discover.NewDiscoverer(protocol.LocalDeviceID, nil) discoverer.StartGlobal([]string{server}, 1) for _, addr := range discoverer.Lookup(id) { log.Println(addr) } }
func discovery(extPort int) *discover.Discoverer { opts := cfg.Options() disc := discover.NewDiscoverer(myID, opts.ListenAddress) if opts.LocalAnnEnabled { l.Infoln("Starting local discovery announcements") disc.StartLocal(opts.LocalAnnPort, opts.LocalAnnMCAddr) } if opts.GlobalAnnEnabled { l.Infoln("Starting global discovery announcements") disc.StartGlobal(opts.GlobalAnnServers, uint16(extPort)) } return disc }