Si prefieres utilizar la API de Geocodificación de Google u otra fuente en línea en lugar de las opciones locales, te sugiero que busques en el Proyecto Tor (que se instala fácilmente a través del paquete denominado "Paquete Vidalia").
Tor lo protege al hacer rebotar sus comunicaciones en una red distribuida de retransmisores gestionados por voluntarios de todo el mundo: evita que ... los sitios que visita conozcan su ubicación física.
Junto con la inyección de direcciones aleatorias y el uso de SSL (https) para cifrar las comunicaciones a sus puntos finales (asegúrese de que también lo esté haciendo), no puedo pensar en una forma más segura de geocodificar de forma remota. Cualquier servicio de geocodificación que esté utilizando nunca podrá identificar de dónde provienen las solicitudes, y con https, nadie más lo hará. Nota: no use un servicio de geocodificación que requiera una clave de API para esto, o ya no será anónimo. (Google ya no requiere una clave de API).
Un "beneficio" secundario de este procedimiento es que ya no estará restringido a ninguna cantidad de solicitudes de geocodificación, ya que sus solicitudes parecerán que provienen de múltiples direcciones IP. Sin embargo, no recomiendo ni apruebo el abuso de estas encantadoras API gratuitas. La velocidad seguirá siendo limitada si la API limita la velocidad (aunque la velocidad de transmisión con Tor es bastante más lenta que la conexión directa).
Estudio de caso en Python: una vez que haya instalado el paquete Vidalia Bundle y tenga el proxy ejecutándose en 127.0.0.1:8118 (predeterminado), en Python 2.7 o superior puede configurar un proxy https urllib2 usando:
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")
Tenga en cuenta que los servidores proxy urllib2 no funcionan con https hasta al menos Python 2.7 más o menos, por lo que este método solo funciona con versiones recientes de Python. Asegúrese de tener 'https' (no 'http') en ambos lugares en el ejemplo anterior. Solo lo probé con Python 2.7.1.
Vidalia cambia su identidad / origen aparente de dirección IP cada 10 minutos, pero si se encuentra con tasas lentas u otros problemas (errores de cuota excedida), o si es especialmente paranoico y desea cambiar su identidad con más frecuencia, puede cambiar su identidad Tor usando el código de Python aquí (ligeramente modificado a continuación). Tendrá que cambiar la contraseña de Tor a una estática (en lugar de una generada aleatoriamente) ingresando la configuración de Vidalia. También podría necesitar reiniciar Vidalia después de todos los cambios.
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