From 771a08d4f4f7ec6d5999b83425cf1fd2a85e3293 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Thu, 20 Mar 2014 04:30:32 +1100 Subject: [PATCH] Add a scrape command so I can work out if trackers are seeing my test clients I don't even know if scrape is the right word. --- cmd/scrape/main.go | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 cmd/scrape/main.go diff --git a/cmd/scrape/main.go b/cmd/scrape/main.go new file mode 100644 index 00000000..d0ee043e --- /dev/null +++ b/cmd/scrape/main.go @@ -0,0 +1,39 @@ +package main + +import ( + "bitbucket.org/anacrolix/go.torrent" + "bitbucket.org/anacrolix/go.torrent/tracker" + _ "bitbucket.org/anacrolix/go.torrent/tracker/udp" + "flag" + metainfo "github.com/nsf/libtorgo/torrent" + "log" + "os" +) + +func main() { + flag.Parse() + mi, err := metainfo.Load(os.Stdin) + if err != nil { + log.Fatal(err) + } + for _, tier := range mi.AnnounceList { + for _, url := range tier { + tr, err := tracker.New(url) + if err != nil { + log.Fatal(err) + } + err = tr.Connect() + if err != nil { + log.Fatal(err) + } + resp, err := tr.Announce(&tracker.AnnounceRequest{ + NumWant: -1, + InfoHash: torrent.BytesInfoHash(mi.InfoHash), + }) + if err != nil { + log.Fatal(err) + } + log.Print(resp) + } + } +}