Django 2.1 - Geolocation with GeoIP2
जियोआईपी 2 के साथ जियोलोकेशन

जियोआईपी 2 के साथ जियोलोकेशन
GeoIP2
ऑब्जेक्ट
MaxMind geoip2 पायथन लाइब्रेरी के
लिए एक आवरण है।
[1]
IP- आधारित जियोलोकेशन करने के लिए,
GeoIP2
ऑब्जेक्ट को
जियोइप 2 पाइथन लाइब्रेरी की
आवश्यकता होती है और जियोआईपी
Country
और / या
City
डेटासेट बाइनरी फॉर्मेट में
(सीएसवी फाइलें काम नहीं करेंगी!)।
GeoLite2-City.mmdb.gz
और
GeoLite2-City.mmdb.gz
फ़ाइलों को पकड़ो और उन्हें
GEOIP_PATH
सेटिंग के अनुरूप निर्देशिका में अनज़िप करें।
इसके अतिरिक्त, यह
libmaxminddb C लाइब्रेरी
स्थापित करने के लिए
अनुशंसित है
, ताकि
geoip2
C लाइब्रेरी की तेज़ गति का लाभ उठा सके।
उदाहरण
यहाँ इसके उपयोग का एक उदाहरण है:
>>> from django.contrib.gis.geoip2 import GeoIP2 >>> g = GeoIP2() >>> g.country('google.com') {'country_code': 'US', 'country_name': 'United States'} >>> g.city('72.14.207.99') {'city': 'Mountain View', 'continent_code': 'NA', 'continent_name': 'North America', 'country_code': 'US', 'country_name': 'United States', 'dma_code': 807, 'latitude': 37.419200897216797, 'longitude': -122.05740356445312, 'postal_code': '94043', 'region': 'CA', 'time_zone': 'America/Los_Angeles'} >>> g.lat_lon('salon.com') (39.0437, -77.4875) >>> g.lon_lat('uh.edu') (-95.4342, 29.834) >>> g.geos('24.124.1.80').wkt 'POINT (-97 38)'
एपीआई संदर्भ
-
class GeoIP2(path=None, cache=0, country=None, city=None)
GeoIP
ऑब्जेक्ट को डिफ़ॉल्ट सेटिंग्स का उपयोग करने के लिए किसी भी पैरामीटर की आवश्यकता नहीं होती है।
हालाँकि, बहुत कम से कम
GEOIP_PATH
सेटिंग आपके GeoIP डेटासेट के स्थान के पथ के साथ सेट की जानी चाहिए।
निम्नलिखित आरंभीकरण खोजशब्दों का उपयोग किसी भी चूक को अनुकूलित करने के लिए किया जा सकता है।
कीवर्ड तर्क | विवरण |
---|---|
path
|
बेस डायरेक्टरी जहां जियोआईपी डेटा स्थित है या शहर या देश डेटा फ़ाइलों (
.mmdb
) पर स्थित है, उसका पूरा मार्ग।
मानता है कि शहर और देश दोनों डेटासेट इस निर्देशिका में स्थित हैं;
GEOIP_PATH
सेटिंग को ओवरराइड करता है।
|
cache
|
जियोआईपी डेटासेट खोलते समय कैश सेटिंग्स।
MODE_AUTO
,
MODE_MMAP_EXT
,
MODE_MMAP
, और
GEOIP_INDEX_CACHE
MODE_MEMORY
C API सेटिंग्स के अनुरूप (0, 1, 2, 4, 8) में पूर्णांक हो सकता है।
डिफ़ॉल्ट 0 (
MODE_AUTO
) के लिए।
|
country
|
जियोआईपी कंट्री डेटा फाइल का नाम।
GeoLite2-Country.mmdb
लिए डिफ़ॉल्ट।
इस कीवर्ड को सेट करना
GEOIP_COUNTRY
सेटिंग को ओवरराइड करता है।
|
city
|
जियोआईपी सिटी डेटा फ़ाइल का नाम।
GeoLite2-City.mmdb
लिए डिफ़ॉल्ट।
इस कीवर्ड को सेट करना
GEOIP_CITY
सेटिंग को ओवरराइड करता है।
|
तरीके
instantiating
-
classmethod GeoIP2.open(path, cache)
यह classmethod दिए गए डेटाबेस पथ और दिए गए कैश सेटिंग से जियोआईपी ऑब्जेक्ट को तुरंत बदल देता है।
पता कर रहा है
निम्नलिखित सभी क्वेरी रूटिंग या तो एक स्ट्रिंग IP पता या पूरी तरह से योग्य डोमेन नाम (FQDN) ले सकते हैं।
उदाहरण के लिए,
'205.186.163.125'
और
'djangoproject.com'
दोनों ही मान्य क्वेरी पैरामीटर होंगे।
-
GeoIP2.city(query)
दी गई क्वेरी के लिए शहर की जानकारी का एक शब्दकोश देता है।
शब्दकोश में कुछ मान अपरिभाषित हो सकते हैं (
None
)।
-
GeoIP2.country(query)
दिए गए क्वेरी के लिए देश कोड और देश के साथ एक शब्दकोश देता है।
-
GeoIP2.country_code(query)
क्वेरी के अनुरूप देश कोड लौटाता है।
-
GeoIP2.country_name(query)
क्वेरी के अनुरूप देश का नाम देता है।
समन्वयक पुनर्प्राप्ति
-
GeoIP2.coords(query)
(देशांतर, अक्षांश) का एक समन्वित टपल लौटाता है।
-
GeoIP2.lon_lat(query)
(देशांतर, अक्षांश) का एक समन्वित टपल लौटाता है।
-
GeoIP2.lat_lon(query)
(अक्षांश, देशांतर) का एक समन्वित टपल लौटाता है,
-
GeoIP2.geos(query)
क्वेरी के अनुरूप
Point
ऑब्जेक्ट लौटाता है।
सेटिंग्स
GEOIP_PATH
उस निर्देशिका को निर्दिष्ट करने वाला एक स्ट्रिंग जहां जियोआईपी डेटा फाइलें स्थित हैं।
GeoIP2
ऑब्जेक्ट को इनिशियलाइज़ करते समय
path
कीवर्ड के साथ मैन्युअल रूप से निर्दिष्ट किए जाने तक यह सेटिंग
आवश्यक है
।
GEOIP_COUNTRY
जियोनी कंट्री डेटा फाइल के लिए उपयोग करने के लिए बेसनेम।
'GeoLite2-Country.mmdb'
।
'GeoLite2-Country.mmdb'
लिए चूक।
GEOIP_CITY
जियोनी सिटी डेटा फ़ाइल के लिए उपयोग करने के लिए बेसनेम।
'GeoLite2-City.mmdb'
लिए चूक।
अपवाद
-
exception GeoIP2Exception
-
जब अपवाद
geoip2
लाइब्रेरी में कॉल में कोई त्रुटि होती है तो अपवाद उठाया जाता है।
फुटनोट
[1] | जियोआईपी (आर) मैक्समाइंड, इंक। का एक पंजीकृत ट्रेडमार्क है। |