Если вы предпочитаете использовать API геокодирования Google или другой онлайн-источник, а не локальные параметры, я бы посоветовал заглянуть в проект Tor (легко устанавливаемый через пакет под названием «Vidalia Bundle»).
Tor защищает вас, направляя ваши сообщения по распределенной сети ретрансляторов, управляемых добровольцами по всему миру: это предотвращает ... посещаемые вами сайты от изучения вашего физического местоположения.
Наряду с введением случайных адресов и использованием ssl (https) для шифрования связи с их конечными точками (убедитесь, что вы тоже это делаете), я не могу придумать более безопасный способ удаленного геокодирования. Какой бы сервис геокодирования вы не использовали, он никогда не сможет определить, откуда в конечном итоге поступили запросы, и с https никто другой не сможет это сделать. Примечание: не используйте сервис геокодирования, для которого требуется ключ API, иначе вы больше не будете анонимным. (Google больше не требует ключ API).
Дополнительным «преимуществом» этой процедуры является то, что вы больше не будете ограничены каким-либо количеством запросов геокодирования, поскольку ваши запросы будут выглядеть так, как будто они поступают с нескольких IP-адресов. Тем не менее, я не рекомендую и не одобряю злоупотребления этими прекрасными бесплатными API! Скорость будет по-прежнему ограничена, если API ограничивает скорость (хотя скорость передачи с использованием Tor немного ниже, чем при прямом подключении).
Пример из практики на Python - После того, как вы установили Vidalia Bundle и прокси-сервер работал на 127.0.0.1:8118 (по умолчанию), в Python 2.7 или выше вы можете настроить https urllib2 прокси, используя:
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")
Обратите внимание, что прокси-серверы urllib2 не работают с https по крайней мере до версии Python 2.7 или около того, поэтому этот метод работает только с последними версиями Python. Убедитесь, что у вас есть «https» (не «http») в обоих местах в примере выше. Я только протестировал это с Python 2.7.1.
Vidalia меняет вашу личность / очевидный источник IP-адреса каждые 10 минут, но если у вас возникают медленные темпы или другие проблемы (квота превышена ошибками), или если вы особенно параноик и хотите менять свою личность чаще, вы можете изменить свою личность Tor используя код Python здесь (немного изменены ниже). Вам нужно будет изменить пароль Tor на статический (а не случайно сгенерированный), введя настройки Vidalia. Может также понадобиться перезапустить Vidalia после всех изменений.
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