Django 2.1 - Geolocation with GeoIP2

जियोआईपी 2 के साथ जियोलोकेशन




django

जियोआईपी 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] जियोआईपी (आर) मैक्समाइंड, इंक। का एक पंजीकृत ट्रेडमार्क है।