From da59639b8bba04dc8bd7b25818439d9c88480fa9 Mon Sep 17 00:00:00 2001 From: Seth Schoen Date: Fri, 31 Aug 2012 15:43:43 -0700 Subject: [PATCH 1/2] organize exit nodes by country --- server-ca/sni_challenge/exit-geography.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/server-ca/sni_challenge/exit-geography.py b/server-ca/sni_challenge/exit-geography.py index 4209a08c1..a7b58e213 100644 --- a/server-ca/sni_challenge/exit-geography.py +++ b/server-ca/sni_challenge/exit-geography.py @@ -1,10 +1,11 @@ #!/usr/bin/env python -import pygeoip +import pygeoip, random geoip = pygeoip.GeoIP('GeoIP.dat', pygeoip.MEMORY_CACHE) allrouters = [] exits = [] +by_country = {} for L in open("/var/lib/tor/cached-consensus"): if L.startswith("s "): @@ -17,10 +18,7 @@ for L in open("/var/lib/tor/cached-consensus"): duplicates = set(e[0] for e in exits if allrouters.count(e[0]) != 1) -print "All the good stable exits with unique names:" -print - for exit in exits: name, ip, flags = exit if name not in duplicates: - print name, ip, geoip.country_code_by_addr(ip) + by_country.setdefault(geoip.country_code_by_addr(ip), []).append(name) From 7c486c7c639997068b05d3d05a537461ff88dd27 Mon Sep 17 00:00:00 2001 From: Seth Schoen Date: Fri, 31 Aug 2012 15:45:04 -0700 Subject: [PATCH 2/2] Pythonic, not LISPy, naming --- server-ca/sni_challenge/{exit-geography.py => exit_geography.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename server-ca/sni_challenge/{exit-geography.py => exit_geography.py} (100%) diff --git a/server-ca/sni_challenge/exit-geography.py b/server-ca/sni_challenge/exit_geography.py similarity index 100% rename from server-ca/sni_challenge/exit-geography.py rename to server-ca/sni_challenge/exit_geography.py