Wenn Sie lieber die Google Geocoding-API oder eine andere Online-Quelle als lokale Optionen verwenden, sollten Sie sich das Tor-Projekt ansehen (das einfach über das Paket namens "Vidalia-Paket" installiert werden kann).
Tor schützt Sie, indem es Ihre Kommunikation über ein verteiltes Netzwerk von Relais leitet, die von Freiwilligen auf der ganzen Welt betrieben werden: Es verhindert, dass ... die besuchten Standorte Ihren physischen Standort erfahren.
Neben der Eingabe von zufälligen Adressen und der Verwendung von SSL (https) zum Verschlüsseln der Kommunikation zu ihren Endpunkten (stellen Sie sicher, dass Sie dies auch tun), gibt es keine sicherere Möglichkeit, die Geocodierung per Fernzugriff durchzuführen. Unabhängig davon, welchen Geokodierungsdienst Sie verwenden, können Sie niemals feststellen, woher die Anforderungen letztendlich stammen, und mit https wird dies auch niemand anderes tun. Hinweis: Verwenden Sie keinen Geokodierungsdienst, für den ein API-Schlüssel erforderlich ist, da Sie sonst nicht mehr anonym sind. (Google benötigt keinen API-Schlüssel mehr).
Ein Nebeneffekt dieses Verfahrens ist, dass Sie nicht mehr auf eine beliebige Anzahl von Geokodierungsanforderungen beschränkt sind, da Ihre Anforderungen so aussehen, als stammten sie von mehreren IP-Adressen. Ich empfehle oder befürworte jedoch nicht , diese schönen kostenlosen APIs zu missbrauchen! Die Übertragungsrate ist immer noch begrenzt, wenn die API die Übertragungsrate begrenzt (obwohl die Übertragungsgeschwindigkeit mit Tor etwas langsamer ist als bei der direkten Verbindung).
Fallstudie in Python - Sobald Sie das Vidalia-Bundle installiert haben und der Proxy unter 127.0.0.1:8118 (Standardeinstellung) ausgeführt wird, können Sie in Python 2.7 oder höher einen https urllib2-Proxy einrichten, indem Sie Folgendes verwenden:
import urllib2
proxy = urllib2.ProxyHandler({'https': '127.0.0.1:8118'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
response = urllib2.urlopen("https://maps.google.com/maps/geo?q=Los+Angeles&sensor=false&gl=us")
Beachten Sie, dass urllib2-Proxys erst ab Python 2.7 oder höher mit https funktionieren. Daher funktioniert diese Methode nur mit neueren Python-Versionen. Stellen Sie sicher, dass Sie im obigen Beispiel an beiden Stellen "https" (nicht "http") angegeben haben. Ich habe es nur mit Python 2.7.1 getestet.
Vidalia ändert Ihre Identität / scheinbare IP-Adresse alle 10 Minuten. Wenn Sie jedoch auf langsame Raten oder andere Probleme stoßen (die Quote überschreitet die Fehlerquote) oder wenn Sie besonders paranoid sind und Ihre Identität häufiger ändern möchten, können Sie Ihre Tor-Identität ändern Verwenden Sie hier den Python-Code (unten leicht modifiziert). Sie müssen das Tor-Passwort durch Eingabe der Vidalia-Einstellungen in ein statisches (und kein zufällig generiertes) Passwort ändern. Möglicherweise muss Vidalia nach allen Änderungen neu gestartet werden.
p = "MySuperSecurePassword"
def renewTorIdentity():
success = False
try:
s = socket.socket()
s.connect(('localhost', 9051))
s.send('AUTHENTICATE "' + p + '"\r\n')
resp = s.recv(1024)
if resp.startswith('250'):
s.send("signal NEWNYM\r\n")
resp2 = s.recv(1024)
if resp2.startswith('250'):
success = True
except:
success = False
return success