यदि Google जियोकोडिंग एपीआई या किसी अन्य ऑनलाइन स्रोत का उपयोग करना स्थानीय विकल्पों के बजाय आपकी प्राथमिकता है, तो मैं टोर प्रोजेक्ट (आसानी से 'विदालिया बंडल' नामक बंडल के माध्यम से स्थापित) में देखने का सुझाव दूंगा।
टॉर दुनिया भर के स्वयंसेवकों द्वारा चलाए जा रहे रिले के वितरित नेटवर्क के आसपास अपने संचारों को उछाल कर आपकी सुरक्षा करता है: यह आपके भौतिक स्थान को सीखने से रोकने वाली साइटों को रोकता है ...
यादृच्छिक पते के इंजेक्शन के साथ और ssl (https) का उपयोग करके अपने एंडपॉइंट्स को संचार एन्क्रिप्ट करें (सुनिश्चित करें कि आप भी ऐसा कर रहे हैं), मैं दूरस्थ रूप से जियोकोड के लिए अधिक सुरक्षित तरीके के बारे में नहीं सोच सकता। जो भी जियोकोडिंग सेवा आप उपयोग कर रहे हैं वह कभी भी यह पहचानने में सक्षम नहीं होगा कि आखिरकार अनुरोध कहां से आया, और https के साथ कोई और भी होगा। नोट: जियोकोडिंग सेवा का उपयोग न करें जिसके लिए इसके लिए एक एपी कुंजी की आवश्यकता होती है, या आप अब अनाम नहीं होंगे। (Google को अब किसी एपीआई कुंजी की आवश्यकता नहीं है)।
इस प्रक्रिया का एक पक्ष 'लाभ' यह है कि अब आप किसी भी प्रकार के जियोकोडिंग अनुरोधों तक सीमित नहीं रहेंगे, क्योंकि आपके अनुरोध ऐसे दिखेंगे जैसे वे कई आईपी पते से आ रहे हैं। हालांकि, मैं इन प्यारे मुफ्त एपीआई का दुरुपयोग करने की सिफारिश या समर्थन नहीं करता हूं ! अगर एपीआई सीमा दर (हालांकि टोर का उपयोग करके संचरण की गति सीधे जोड़ने की तुलना में काफी धीमी है) तो भी दर सीमित रहेगी।
पायथन में केस स्टडी - एक बार जब आपने विदालिया बंडल को स्थापित कर लिया है और प्रॉक्सी को 127.0.0.1:8118 (डिफ़ॉल्ट) पर चल रहा है, तो पायथन 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 proxies कम से कम पायथन 2.7 या उसके बाद तक https के साथ काम नहीं करता है, इसलिए यह विधि केवल हाल के पायथन संस्करणों के साथ काम करती है। सुनिश्चित करें कि आपको उपरोक्त उदाहरण में दोनों स्थानों पर 'https' ('http') नहीं मिला है। मैंने इसे केवल पायथन 2.7.1 के साथ परीक्षण किया है।
Vidalia हर 10 मिनट में आपकी पहचान / स्पष्ट आईपी पते की उत्पत्ति को बदल देती है, लेकिन यदि आप धीमी दरों या अन्य समस्याओं (कोटा से अधिक त्रुटियों) में भाग लेते हैं, या यदि आप विशेष रूप से पागल हैं और अपनी पहचान को अधिक बार बदलना चाहते हैं, तो आप अपनी टोर पहचान बदल सकते हैं यहां अजगर कोड का उपयोग करना (नीचे थोड़ा संशोधित)। आपको विडालिया सेटिंग्स में प्रवेश करके टॉर पासवर्ड को एक स्थिर (एक यादृच्छिक रूप से उत्पन्न एक के बजाय) में बदलना होगा। सभी परिवर्तनों के बाद विदालिया को पुनः आरंभ करने की भी आवश्यकता हो सकती है।
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