Как определить страну и город пользователя, заходящего на ваш сайт? - PullRequest
7 голосов
/ 22 июля 2009

Как вы можете определить страну происхождения пользователей, заходящих на ваш сайт?

Я использую Google Analytics на своем сайте и вижу, что у меня есть пользователи из разных регионов мира.

Но в моем приложении я хотел бы предоставить некоторые дополнительные настройки в зависимости от страны и, возможно, города.

Можно ли обнаружить эту информацию из браузера? Это веб-приложение на Python.

Ответы [ 3 ]

15 голосов
/ 22 июля 2009

Grab and gunzip http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz, установите пакет GeoIP-Python (пакет python-geoip, если вы используете Debian или Ubuntu, в противном случае установите http://geolite.maxmind.com/download/geoip/api/python/GeoIP-Python-1.2.4.tar.gz), и выполните:

import GeoIP
gi = GeoIP.open("GeoLiteCity.dat", GeoIP.GEOIP_INDEX_CACHE | GeoIP.GEOIP_CHECK_CACHE)
print gi.record_by_name("74.125.67.100") # a www.google.com IP

{'city': 'Mountain View', 'region_name': 'California', 'region': 'CA', 'area_code': 650, 'time_zone': 'America/Los_Angeles', 'longitude': -122.05740356445312, 'country_code3': 'USA', 'latitude': 37.419200897216797, 'postal_code': '94043', 'dma_code': 807, 'country_code': 'US', 'country_name': 'United States'}

База данных бесплатна (http://geolite.maxmind.com/download/geoip/database/LICENSE.txt). Они тоже ее продают; я думаю, что вы будете получать более частые обновления.

8 голосов
/ 22 июля 2009

Получите IP-адрес посетителя и проверьте его с помощью веб-службы geolocation (или приобретите базу данных геолокации, если вы хотите разместить это определение у себя).

1 голос
/ 16 октября 2016

Макс разум стоит денег. Вы можете попробовать бесплатное решение с кодом страны: https://pypi.python.org/pypi/geoip2nation/

pip install geoip2nation

from geoip import geoip
r = geoip.GeoIp()
r.load_memory()
r.resolve("12.12.12.12").country_code
#This prints : 'US'

print r.resolve("123.44.57.4")
#This prints : {'country': 'Korea (South)', 'host_name': '', 'country_code': 'KR'}

r.resolve2("12.12.12.12")
#This prints : 'US'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...