Jika menggunakan Google Geocoding API atau sumber daring lain adalah pilihan Anda daripada pilihan lokal, saya sarankan untuk melihat ke dalam Proyek Tor (mudah dipasang melalui bundel yang disebut 'the Vidalia Bundle').
Tor melindungi Anda dengan memantulkan komunikasi Anda di sekitar jaringan relay yang dijalankan oleh sukarelawan di seluruh dunia: Tor mencegah ... situs yang Anda kunjungi dari mengetahui lokasi fisik Anda.
Seiring dengan injeksi alamat acak dan menggunakan ssl (https) untuk mengenkripsi komunikasi ke titik akhir mereka (pastikan Anda juga melakukan ini), saya tidak bisa memikirkan cara yang lebih aman untuk melakukan geocode dari jarak jauh. Layanan geocoding apa pun yang Anda gunakan tidak akan pernah dapat mengidentifikasi dari mana permintaan akhirnya berasal, dan dengan https, tidak ada orang lain yang akan melakukannya. Catatan: jangan gunakan layanan geocoding yang memerlukan kunci api untuk ini, atau Anda tidak akan lagi anonim. (Google tidak memerlukan kunci api lagi).
Sisi 'manfaat' dari prosedur ini adalah bahwa Anda tidak akan lagi dibatasi untuk sejumlah permintaan geocoding, karena permintaan Anda akan terlihat seperti berasal dari beberapa alamat ip. Namun, saya tidak merekomendasikan atau mendukung penyalahgunaan API gratis yang indah ini! Nilai masih akan terbatas jika API membatasi laju (meskipun kecepatan transmisi menggunakan Tor sedikit lebih lambat daripada menghubungkan langsung).
Studi kasus dengan Python - Setelah Anda menginstal Vidalia Bundle dan menjalankan proxy pada 127.0.0.1:8118 (default), dengan Python 2.7 atau lebih tinggi, Anda dapat mengatur proxy https urllib2 menggunakan:
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")
Perhatikan bahwa proksi urllib2 tidak berfungsi dengan https hingga setidaknya Python 2.7 atau lebih, jadi metode ini hanya berfungsi dengan versi Python terbaru. Pastikan Anda memiliki 'https' (bukan 'http') di kedua tempat dalam contoh di atas. Saya hanya mengujinya dengan Python 2.7.1.
Vidalia mengubah identitas / asal alamat IP semula setiap 10 menit, tetapi jika Anda mengalami tingkat kelambatan atau masalah lain (kuota melebihi kesalahan), atau jika Anda terutama paranoid dan ingin mengubah identitas Anda lebih sering, Anda dapat mengubah identitas Tor Anda menggunakan kode python di sini (sedikit dimodifikasi di bawah). Anda harus mengubah kata sandi Tor menjadi yang statis (daripada yang dibuat secara acak) dengan memasukkan pengaturan Vidalia. Mungkin juga perlu me-restart Vidalia setelah semua perubahan.
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