หากใช้ Google Geocoding API หรือแหล่งข้อมูลออนไลน์อื่นคือการตั้งค่าของคุณมากกว่าตัวเลือกในท้องถิ่นฉันขอแนะนำให้ดูในโครงการ Tor (ติดตั้งผ่านชุดข้อมูลที่เรียกว่า 'The Vidalia Bundle')
Tor ปกป้องคุณจากการตีกลับการสื่อสารของคุณผ่านเครือข่ายการถ่ายทอดข้อมูลแบบกระจายที่ดำเนินการโดยอาสาสมัครทั่วโลก: ป้องกันไม่ให้ ... เว็บไซต์ที่คุณเข้าชมไม่สามารถเรียนรู้ตำแหน่งทางกายภาพของคุณได้
นอกเหนือจากการฉีดที่อยู่แบบสุ่มและการใช้ ssl (https) เพื่อเข้ารหัสการสื่อสารไปยังจุดสิ้นสุดของพวกเขา (ตรวจสอบให้แน่ใจว่าคุณกำลังทำสิ่งนี้อยู่ด้วย) ฉันไม่สามารถนึกถึงวิธีที่ปลอดภัยกว่าสำหรับการเข้ารหัสทางภูมิศาสตร์จากระยะไกล บริการ Geocoding ใดก็ตามที่คุณใช้งานอยู่จะไม่สามารถระบุได้ว่าคำขอมาจากที่ใดและท้ายที่สุดด้วย https ที่ไม่มีใครต้องการ หมายเหตุ: อย่าใช้บริการ Geocoding ที่ต้องใช้รหัส 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 เท่านั้น
วิดาเลียเปลี่ยนข้อมูลประจำตัว / ที่อยู่ IP ของคุณชัดเจนทุก 10 นาที แต่ถ้าคุณใช้อัตราช้าหรือปัญหาอื่น ๆ (โควต้าเกินข้อผิดพลาด) หรือหากคุณหวาดระแวงเป็นพิเศษและต้องการเปลี่ยนข้อมูลประจำตัวของคุณบ่อยขึ้นคุณสามารถเปลี่ยนข้อมูลประจำตัวของ Tor ใช้รหัสไพ ธ อนที่นี่ (แก้ไขเล็กน้อยด้านล่าง) คุณจะต้องเปลี่ยนรหัสผ่าน 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