On Thu, Dec 06, 2012 at 08:39:09AM +0100, Karsten Loesing wrote:
Why not just run and query an Onionoo server?
Onionoo isn't really optimised in regards to giving out lists of exits, the parsing of the JSON sounds like a duplicate effort to me. Also, shipping Onionoo with every facilitator seems a bit overkill.
It's not Onionoo's primary purpose to give out lists of exit addresses, but it provides that information, too. It just doesn't offer good query parameters for that use case. But I think you should do okay downloading the full set of relay summaries once per hour and cache that data locally. The URL is:
https://onionoo.torproject.org/summary?type=relay&running=true
The protocol specification is here:
https://onionoo.torproject.org/
I wouldn't recommend running your own Onionoo server, particularly not on every facilitator. But if you cache results, you don't really have to do that.
Thank you, Karsten, for the helpful information.
Jorge, I think that using Onionoo as a data source is the thing to do. You should be able to adapt your program from https://trac.torproject.org/projects/tor/ticket/7549#comment:4. You can assume that the Python json library is present.
David Fifield