Nasıl ziyaretçinin ülke izlemek ve uygun sitelere yönlendirmek istiyorsun?

3 Cevap php

Ben ziyaretçilerin ülkeyi izlemek ve sonra google ne gibi benim sitenin alt etki alanlarını uygun onları yönlendirmek istiyorum ...

Ve ben herhangi kullanmanız gerekir eğer API veri güvenebilirsiniz ne ölçüde kadar? ..

Ben php kullanıyorum ..

3 Cevap

Download ve% 99.5 doğruluk iddia Maxmind's GeoLite Country veritabanını yükleyin. Eğer bir iddia% 99.8 doğruluk ile ücretli bir sürüme yükseltmek için ödeme yapabilirsiniz. PHP veritabanı nasıl kullanılacağı ile ilgili dört seçenek vardır:

  1. CSV dosyasını indirin ve seçtiğiniz SQL veritabanına almak. Bu yavaş bir seçenektir ve çirkin bir API var. Ben bunu tavsiye, ama onun bütünlüğü uğruna dahil değildir.
  2. Veritabanı dosyasını okuyabilir saf bir PHP sınıfı indirin. Bu SQL seçenek daha güzel bir API sağlar, ancak hala biraz yavaş. PHP4 ve PHP5 sürümleri vardır
  3. C extension module for PHP indirin ve yükleyin. Bu, nice interface ve iyi bir performans sahip olma avantajına sahiptir. Ancak saf PHP sınıfı daha yüklemek daha zor olduğunu, bu nedenle hosting şirketi ile kontrol etmek gerekebilir. Eğer şanslı iseniz, zaten yüklü olabilir.
  4. Eğer cayır cayır yanan hızlı performans gerekiyorsa, Apache module ile gitmek. Bu yüklemek için en zor, aynı zamanda en hızlı seçenektir.

Tüm bu seçenekler bir ülke kodu almak için bir yöntemi vardır. Ben SQL seçeneği dahil değil, ancak more info here alabilirsiniz.

Saf PHP4:

include("geoip.inc");
$gi = geoip_open("/usr/local/share/GeoIP/GeoIP.dat",GEOIP_STANDARD);
$code = geoip_country_code_by_addr($gi, "24.24.24.24");

PECL PHP uzantısı:

$code = geoip_country_code_by_name($_SERVER['REMOTE_ADDR']);

Apache modülü:

$code = apache_note("GEOIP_COUNTRY_CODE");

Daha sonra bir HTTP yönlendirme kullanarak, bu kodları dayalı yönlendirebilir:

 $redirect = array("AU" => "http://australia.example.com", "NZ" => "http://newzealand.example.com")
 $url = $redirect[$code]
 header("Location: $url");

Ancak bu iki HTTP isteklerini neden olur ve böylece suboptimaldir. Daha iyi bir yaklaşım .htaccess dosyası, yeniden yapmak için Apache modülü kullanmak için:

GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat

# Redirect one country
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CA
RewriteRule ^(.*)$ http://www.canada.com$1 [L]

# Redirect multiple countries to a single page
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(CA|US|MX)$
RewriteRule ^(.*)$ http://www.northamerica.com$1 [L]

Tabii, bunu yapmak için bir belki daha iyi bir yolu DNS seviyesinde, sizin için bunu yapmak için başka birini elde etmektir. Ortaya bir hızlı arama this company, (onlar iyi olup olmadığını hiçbir fikrim yok) hiç şüphesiz diğerleri vardır. Bu, Google bunu nasıl olduğunu.

Eğer müşteri "dünya" bölmek istediğiniz için boyu ve IP-to-country database veya sağlanan verileri kullanabilirsiniz olası hedefler (alt alanları) sayısına bağlı MaxMind.com's Free Geolocation Database, koyun SQL tabloya ve sonra ziyaretçinin IP adresi üzerinde bir arama yapmak ve gerektiği gibi yönlendirmek için küçük bir komut dosyası kullanabilirsiniz.

Veriler ziyaretçilerin herhangi vekilleri veya (gördüğünüz IP adresi gerçek bir adres değil durumda) diğer anonymisers aracılığıyla sitesine erişmek, özellikle% 100 doğru olmayacak. Bunu uygulamak yaparsanız, ben kullanıcı düzeltmek (veya basitçe geçersiz) bölgesel yönlendirme için izin dahil olmak üzere değerinde olacağını öneririm.

Eğer kendiniz kodlama gibi hissediyorum yoksa, Evan Lambda GeolP denilen serin bir komut dosyası var! Bunu buraya göz atın: http://www.lambdageoip.com

Lambda GeolP ziyaretçilerinizin coğrafi konumunu belirlemek için web sitenizde kullanabilirsiniz tamamen kendine barındırılan coğrafi hedefleme yazısıdır. Bir kullanıcı bir mobil cihaz, bir bot, ya da bir uydu bağlantısı kullanarak açıksa Buna ek olarak, belirleyebilirsiniz.

Ayrıca kendi kıtasında, ülkeye, bölgeye veya şehre göre farklı sayfalara kullanıcılar iletebilirsiniz.

Tüm özellikleri PHP kod sadece 1 satır ile sitenizde kullanılabilir.

Lambda GeolP değil "telefon ev", uzak içeriği yüklemek, ya da herhangi başka bir sunucu ile iletişim yok. Bu güvenli ve tamamen kendine ev sahipliği yaptı.