2009-07-22 20 views
7

Sitenize erişen kullanıcıların menşei ülkesini nasıl tespit edebilirsiniz?Sitenize erişen bir ülkenin ülke ve şehri nasıl tespit edilir?

Sitemde Google Analytics kullanıyorum ve dünyanın farklı bölgelerinden gelen kullanıcılara sahip olduğumu görebiliyorum.

Ancak başvurumda ülkeye ve belki de şehre göre bazı ek özelleştirme yapmak istiyorum.

Bu bilgi, tarayıcıdan algılanabilir mi? Bu bir Python web uygulamasıdır.

+0

geoip2nation yüklemek pip, için dokümanlar bakınız bir örnek https://ipdata.co/docs.html – Jonathan

cevap

15

tut ve http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz, (eğer Debian veya Ubuntu iseniz aksi http://geolite.maxmind.com/download/geoip/api/python/GeoIP-Python-1.2.4.tar.gz yükleyin piton-geoip paketi) GeolP-Python paketini yüklemek gunzip ve yapın:

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'}

veritabanı ücretsizdir (http://geolite.maxmind.com/download/geoip/database/LICENSE.txt). Onlar da satıyorlar; Bence size daha sık güncellemeler getiriyor.

+3

Bu arada, ihtiyaç duyduğunuz tek şey (http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz), daha küçük bir ülke veritabanı da var. Sadece dosyayı değiştirin, yukarıdaki bayraklar yerine GeoIP.GEOIP_STANDARD kullanın ve gi.country_code_by_name (ip) 'i arayın. –

+0

Başlıklar için teşekkürler, maxmind web arayüzünü kullandım ancak daha önce ücretsiz bir veritabanı sunduklarını fark etmedim. –

+1

Sadece FYI, MaxMind Precision, yalnızca ülkelerden daha iyi bir doğruluğa sahip olmak istiyorsanız, GeoLite'den daha hassastır. Ülkeler için, neredeyse hiçbir fark yoktur (veri kümemde, 85 ülkeden 400 adres konum çifti). Son zamanlarda bunu yüksek lisans tezimin bir parçası olarak okudum (henüz yapılmadı, şimdi bağlantıya geçmeyecek). – Olli

8

Ziyaretçilerin IP'sini alın ve bir geolocation web hizmetiyle kontrol edin (ya da bu tespiti şirket içinde barındırmaya niyetliyse bir coğrafi konum veritabanı satın alın).

+0

Çözümleri işaretlerken insanlar emin olabilirler. –

0

Azami zihin maliyeti paradır. özgür henüz ülke kodu tek çözüm deneyebileceğiniz: https://pypi.python.org/pypi/geoip2nation/

Sen https://ipdata.co API jquery ile arama yapabilir

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' 
+0

Bu doğru değil. GeoLite veya IP2Location LITE kullanım için ücretsizdir. –

+0

Sayfanın alt kısmında ticari bir büküm var: Ticari yeniden dağıtım lisansı da sunuyoruz. – Mitzi

İlgili konular